【问题标题】:Create Rails project structure without installing full Rails stack在不安装完整 Rails 堆栈的情况下创建 Rails 项目结构
【发布时间】:2019-06-10 01:00:42
【问题描述】:

我使用 rvm 进行开发。为了最初创建一个新的 Rails 项目目录,我将在我的默认 gemset 中安装完整的 Rails 堆栈,以便我可以运行“rails new”。然后,我将在新项目目录中创建“.ruby-version”和“.ruby-gemset”文件,以便 rvm 在导航到项目时自动切换正确的 ruby​​ 版本和 gemset。然后我必须在项目的 gemset 中再次安装完整的 Rails 堆栈。所以我从来没有真正最终使用安装在我的默认 gemset 中的 Rails 堆栈(除了运行“rails new”)。

那么,我可以安装一部分 Rails gem 来运行相当于“rails new”来生成新项目吗?有没有其他东西我可以用来做同样的事情,但在技术上不在 Rails 范围内?

【问题讨论】:

  • 理论上,你所需要的只是 Rails 生成器,但如果尝试以可运行的形式从 Rails 中提取它们,那就祝你好运了。
  • 另外,当你有 bundler 的时候,你为什么还要使用 gemsets?
  • @SergioTulentsev 所以我可以在项目之间快速切换,而无需重新安装 gems。是否有一些捆绑器功能可以让我这样做?
  • @SergioTulentsev 关于 Rails 生成器的提取,如果这是实施项目生成的地方,则同意。我希望他们使用一些我可以自己安装和运行的简单脚本(打包在它自己独立的 Ruby gem 中)。
  • 是的,这正是 bundler 所做的。您可以在系统中安装任何 gem 版本(来自所有项目的 gem),然后 bundler 确保加载当前项目所需的确切版本。无需卸载重新安装。

标签: ruby-on-rails ruby


【解决方案1】:

我不知道在创建 rails 项目时如何指定要包含/排除 Rails 堆栈的哪些部分,但是一旦安装,您可以通过修改 application.rb 文件来选择不导入应用程序的部分。

您的application.rb 文件包含以下代码:

# Pick the frameworks you want:
require "active_model/railtie"
require "active_job/railtie"
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "action_cable/engine"
require "sprockets/railtie"
require "dotenv-rails"

只需注释掉您不想包含在正在运行的应用程序中的框架,它们就不会被导入。

不确定这是否是您正在寻找的内容,但希望对您有所帮助。

【讨论】:

  • 感谢您的回复。这不是我要找的。我正在寻找某种方法来最初创建 Rails 项目,而无需安装完整的 Rails 堆栈。理想情况下,这就像安装一个 gem,它允许我调用基本的“rails new”。
  • @Rossman 是的,不幸的是,我不知道有什么类似于你在那里要做的事情。抱歉,我无法提供更多帮助!
猜你喜欢
  • 1970-01-01
  • 2015-02-07
  • 2015-01-21
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多