2009-07-17 50 views
2

我最近升級了一個我正在從2.0.5工作到2.3.2的rails項目。我注意到在vendor/rails中有一個2.0.5 rails文件的本地副本,我想知道是否應該將本地副本放在2.3.2 rails文件中,或者將它們放在外面?什麼被認爲是更好的做法?Rail應用程序中Rails的本地副本

回答

3

是的。實際上,使用vendor/rails中的Rails副本實際上優先於系統範圍內安裝的Rails gem,換句話說,儘管您升級了Rails安裝,但您的應用程序實際上仍在2.0.5上運行。

vendor/rails目錄存在,因此您可以將您的應用程序「凍結」到特定版本的Rails,從而使其不易受到正在運行的計算機配置更改的影響。這非常有用,有一種自動管理目錄的方式。要刪除的Rails坐在vendor/rails的現有版本,去你的Rails項目目錄的根目錄並執行以下操作:

rake rails:unfreeze 

要那麼你的系統上安裝最新的Rails的寶石成vendor/rails,千萬:

rake rails:freeze:gems 

還有一些其他的事情可以用vendor/rails來完成。查看rake -T以獲取完整的命令列表。

P.S.如果你聽說有人談論他們的Rails安裝是「售賣」,這就是他們的意思。

+0

是的,我注意到它使用本地副本,所以我只是簡單地從供應商刪除軌道目錄。感謝你的回答。 – AdamB 2009-07-18 00:01:10

1

在此期間事情有所改變。

rake rails:freeze 

rake rails:unfreeze 

已被棄用。相反,你應該使用:

bundle install --path vendor/bundle 

bundle install --system 

切換回。

相關問題