【问题标题】:Create a new project in rails older version在 Rails 旧版本中创建一个新项目
【发布时间】:2026-02-15 10:10:01
【问题描述】:

我的机器中有 rails 版本 3.2.1。安装的其他版本是3.0、3.0.3。每当我跑步时

 rails new PROJECT_NAME

command ,项目在版本 3.2.1 中创建。我想在 3.0.3 版本中创建项目。

我该怎么办?

【问题讨论】:

标签: ruby-on-rails version project new-operator


【解决方案1】:

您可以使用旧版本创建新应用

rails _3.0.3_ new appname 

但你可能会得到错误

/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:316:inbin_path': 找不到 gem railties (["3.0.3"]) with executable rails (Gem::GemNotFoundException) from /usr/local/bin/rails:19:in'

所以

再次安装 rails gem

sudo gem install rails -v="3.0.3"

现在可以了

rails _3.0.3_ new app

它会正常工作

谢谢

【讨论】:

  • 我认为sudo gem install rails -v="3.0.3"应该是sudo gem install rails -v "3.0.3"
  • 嗨,塔斯,我们可以同时使用。两者都可以,我刚刚尝试过并且有效。
  • 很奇怪。我昨天尝试了第一种语法,但它对我不起作用。 >.
  • 最好的办法是使用 RVM 并在没有 sudo 的情况下安装 gem。
  • 我完全同意,但这是一个没有设置 RVM 的生产 FreeBSD 服务器。在开发中,我确实使用 RVM。
【解决方案2】:

您可以使用 RVM 之类的东西并将其他 Rails 版本安装在不同的 gemset 中。然后选择具有旧版 rails 的 gemset,并且您的 rails 命令应该来自旧版本。

或者你应该能够使用

rails _VERSION_ new myapp

【讨论】:

  • 只是为了澄清下划线不是重点。这是所需的实际语法。例如。 rails _2.3.14_ new myapp.
  • 任何人都知道将其设置为默认值的方法吗?
【解决方案3】:

建议使用捆绑器。您的项目将有一个 Gemfile,您可以在其中指定所需的 rails 版本:

gem "rails", "~> 3.0.3"

安装 bundler gem 后,bundle install 将安装您指定的 Rails 版本。

然后,当您准备好升级 Rails 版本时,您可以通过指定要迁移到的版本号来完成此操作。当然,这种方法有助于管理您的项目所依赖的所有 gem,包括您只需要在测试和开发等中使用的那些。

请参阅http://gembundler.com/ 了解更多信息。

【讨论】: