指定创build新应用程序时使用的rails版本

我的电脑中安装了两个版本的rails(2.1.0和2.2.2)。

当我创build一个新的应用程序,是否可以指定我想使用旧的(2.1.0)版本?

我在这里find一个未公开的选项来使用旧版本的Rails创build一个新的应用程序。

rails _2.1.0_ new myapp 

这是我通常使用的命令:

 rails _version_ new application_name 

例如rails _2.1.0_ new my_app

以下是目前所有可用的rails版本列表:

http://rubygems.org/gems/rails/versions

我在使用rails _version_ new application_name时遇到了一些麻烦(生成的项目仍然是为安装的最新版本的Rails生成的。)

经过一番挖掘,我find了 Michael Trojanek用另一种方法写 的一篇文章 。 这可以通过创build一个文件夹来指定所需的Rails版本,然后使用bundle exec rails...以便Bundler负责运行适当版本的rails 。 例如做一个新的Rails 4.2.9项目的步骤是:

 mkdir myapp cd myapp echo "source 'https://rubygems.org'" > Gemfile echo "gem 'rails', '4.2.9'" >> Gemfile bundle install bundle exec rails new . --force --skip-bundle bundle update 

您可以使用任一版本生成骨架,并在config/environment.rb需要您想要的骨架:

 # Specifies gem version of Rails to use when vendor/rails is not present RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION 

或者使用你想要的版本的“rails”命令。

你也应该看看“冻结”你的Rails的gem进入应用程序。 这对部署有很大帮助,特别是在共享主机环境中。

只需更改config/environment.rbRAILS_GEM_VERSIONvariables并发出冻结耙任务:

 rake rails:freeze:gems