2010-04-20 162 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分組。

我希望這可以幫助