2010-04-20 100 views
2

我想在一个项目中使用Rails 2.2.2,在另一个项目中使用Rails 2.3.2。两者都已安装。多个项目的多个Rails版本

什么是rails _2.2.2_ --version应该做的?我读过它使2.2.2的工作版本 - 也就是从那时起将被使用的版本。但是当我检查rails --version时,我得到了Rails 2.3.2。所以,我也想知道rails --version告诉我什么;它只是我拥有的Rails的最新版本,还是它将用于rake s的版本?

我知道RVM。这是在不同项目上使用不同版本Rails的最佳方式吗?

回答

8

是 “轨--version” 讲述的是轨道的最新版本。如果您想检查不同的版本安装在您的机器轨你所要做的“宝石名单”,这给安装在您的机器与他们versions.For防爆的所有宝石的名单: -

rack (1.0.0) 
rails (2.3.4, 2.1.1) 
rake (0.8.7) 

是在不同的项目上使用不同版本的Rails的最佳方式是什么?

我的观点是,对于不同的项目,使用diiferent Rails版本不是一个好习惯。但有时您使用的是早期版本的旧项目,因此您无法安装该版本的Rails。但是在创建新的应用程序时,您应该使用最新的稳定版本。

只是为了记录您可以通过在enviorment.rb提的Rails版本对于防爆使用不同版本的Rails为不同的项目: -

RAILS_GEM_VERSION = '2.1.1' unless defined? RAILS_GEM_VERSION 
0

config/environment.rb文件中查找RAILS_GEM_VERSION并将该值设置为所需版本。

RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION 

OR

RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION 
1

我会尝试这个RVM gemsets,因为很可能是你需要为每个项目保留独立的依赖关系集以及Rails本身的单独版本。

RVM似乎通常是一种更为整洁的方法 - 使用单独的环境而不是单个宝石池意味着您可以轻松创建或销毁环境而不会破坏其他环境,并且可以减少在指定依赖。

在Python世界中,人们使用virtualenv为他们的每个项目创建完全独立的环境,我认为这是一个好主意来复制。

0

我会用捆扎机:http://gembundler.com/

这是很容易习惯,并有其他好处。这是Rails的一些核心成员,我相信在Rails 3.0之后不久,它将成为推荐的解决方案。

0

要回答您的原始问题,在您创建新的rails应用程序时,版本号中的下划线用于指定版本。例如,如果您要创建一个新的rails应用程序,rails会默认使用系统中安装的最新版本,但如果您想使用系统上安装的较早版本,该怎么办? 这是命令

2.3.4 killerapp

您需要在您的系统上安装导轨宝石2.3.4! 为此,您可以使用rvm和gemsets将便捷包中的ruby/gems分组。

我希望这可以帮助