如何切换到较旧版本的rails

我正试着追查2011年写的一本旧书。

因此,从2011年11月开始随机挑选3.1.3版本。

如何在RVM中切换到该版本?

目前有Rails 4.0.0.beta1版本……

请不要建议将它放在Gemfile中,因为有很多其他依赖项处理起来太麻烦了,因此如果我只是切换,我假设它意味着其他依赖项将被处理同时也是,对吧?

UPDATE

 **-s-MacBook-Pro:agile **$ rails -v Rails 4.0.0.beta1 **-s-MacBook-Pro:agile **$ gem install rails -v 3.1.3 Successfully installed rails-3.1.3 1 gem installed **-s-MacBook-Pro:agile **$ rvm gemset create rails 313 gemset created rails => /Users/**/.rvm/gems/ruby-1.9.3-p392@rails gemset created 313 => /Users/**/.rvm/gems/ruby-1.9.3-p392@313 **-s-MacBook-Pro:agile **$ ruby -v ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin10.8.0] **-s-MacBook-Pro:agile **$ rvm 1.9.3p392-head@rails313 Unknown ruby interpreter version: '1.9.3p392'. **-s-MacBook-Pro:agile **$ 

再次更新

 **-s-MacBook-Pro:agile **$ rvm gemset use 313 Using ruby-1.9.3-p392 with gemset 313 **-s-MacBook-Pro:agile **$ rails -v /Library/Ruby/Site/1.8/rubygems/dependency.rb:296:in `to_specs': Could not find 'rails' (>= 0) among 2 total gem(s) (Gem::LoadError) from /Library/Ruby/Site/1.8/rubygems/dependency.rb:307:in `to_spec' from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_gem.rb:47:in `gem' from /usr/bin/rails:18 **-s-MacBook-Pro:agile **$ 

首先,卸载您拥有的Rails版本:

gem uninstall rails

接下来,安装所需的Rails版本,如下所示:

gem install rails -v 3.1.12

有几种方法可以同时“安装”。 正如Joe Frambach建议的那样,您可以在VM中安装Rails 4。 您还可以安装RVM (Ruby enVironment Manager)并使用单独的gemsets来保持Rails的两个版本。 但如果你只是在学习,你可能不想打扰这个。

编辑: @ Shadwell的答案是正确的,虽然它可以使用一些扩展,我将在这里做:

 > rvm gemset create rails3 > rvm gemset use rails3 > gem install rails -v 3.1.12 > rails my_new_app 

我不小心安装了rails版本4.1.7,但是在我用这个命令卸载rails之后我们的项目需要rails版本4.1.6:

gem uninstall rails

然后使用以下命令安装rails版本4.1.6:

gem install rails -v 4.1.6

但是当我运行rails -v它的版本仍然是4.1.7

通过运行gem list我在该列表中看到存在的包名称是railties (4.1.7, 4.1.6)之后我用这个命令删除它:

 # gem uninstall railties Select gem to uninstall: 1. railties-4.1.6 2. railties-4.1.7 3. All versions > 

我输入2和gem卸载它。 在我尝试使用rails -v我给了4.1.6

你似乎已经在使用RVM了。 为不同的rails版本创建gemset:

 > rvm gemset create rails3 > rvm gemset use rails3 > bundle install 

然后,您将只获得该gemset中安装的gem。 我也很想为rails4创建一个gemset,而不是让gem周围没有gem。 然后在它们之间切换你只需要rvm gemset use你想要的任何一个。

这里有更多关于gemset的东西 ,它也值得在rvmrc上阅读,因为那时你甚至不需要切换gemsets。

我们可以更改我们的默认版本的rails。
Rails版本在Ruby“bin”本身中定义。

安装所需的rails版本

 gem install rails -v 4.2.6 

在Windows中:

  • 转到你当前的ruby版’bin’文件夹(在我的系统c:/ RubyXX-x64 / bin中
  • 你会在那里找到“rails”文件
  • 用文本编辑器打开“rails”文件,你会看到—– version =“> = 0” (这意味着:它打开了ruby gems中存在的最高版本的rails)
  • 用特定的导轨版本替换它—– version =“4.2.6”

在Linux中:

  • goto ruby​​ lib文件夹(在我的系统中— /。rvm / gems / ruby​​-2.3.1 / bin)

$捆绑

(给出找到你的捆绑器执行的ruby的路径(— /。rvm / gems / ruby​​-2.3.1 / bin / bundler))

  • 使用文本编辑器编辑“rails”文件

dathu @ ubuntu:〜/ .rvm / gems / ruby​​-2.3.1 / bin $ sudo subl rails

  • 用(verion =“4.2.6”)替换(verion =“> = 0”)您的特定安装版本。

  • 保存并检查当前的rails版本。