如何切换到旧版本的rails

时间:2013-06-11 19:56:42

标签: ruby-on-rails ruby

我正在尝试按照2011年写的旧书。

因此,自2011年11月起随机挑选3.1.3版本。

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

目前有Rails 4.0.0.beta1版本...

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

更新

**-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 **$ 

4 个答案:

答案 0 :(得分:24)

首先,卸载您拥有的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

答案 1 :(得分:7)

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

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

答案 2 :(得分:3)

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

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

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

还有更多关于gemset here的内容,并且值得阅读rvmrc,因为这样你甚至不需要切换宝石集。

答案 3 :(得分:1)

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

安装所需的rails版本
gem install rails -v 4.2.6

在Windows中:

  • 转到您当前的红宝石版本' bin'文件夹(在我的系统中 c:/ RubyXX-x64 / bin
  • 你会发现" rails"在那里
  • 打开" rails"文件编辑器的文件  你会看到----- 版本="> = 0" (这意味着:它打开了最高版本的rails,存在于ruby gems中)
  • 将其替换为特定的rails版本----- version =" 4.2.6"

在Linux中:

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

$捆绑

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

  • 编辑" rails"文件编辑器文件
  

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

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

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