2011-09-12 57 views

回答

2

我建議不是指定寶石版本,直到你已經發現與特定寶石不兼容。

Bundler將自己鎖定特定版本的寶石。您只需要記住在生產機器上使用bundle install --deployment,並且僅在您的開發機器(或另一個目錄)中進行升級。

對您的項目進行良好的測試覆蓋非常重要。如果沒有測試,您將無法知道升級何時會破壞您的應用程序。我謙恭地提出了以下路線:

  • 運行rake test(只是爲了確保一切工作)
  • 運行bundle update
  • 運行rake test

如果測試通過,提交更改在Gemfile.lock。如果測試未通過,並且您想鎖定給定的寶石,則然後在Gemfile中指定版本。

您可以在bundler文檔中閱讀install --deploymentdeploying

1

在特定版本中「凍結」寶石非常重要,如果您正在爲生產準備東西,這是必須的。寶石,圖書館和應用程序會隨着時間的推移而發展 - 爲了不斷髮展,有時需要更改Gem API,並且這可以消除與以前版本的向後兼容性。

關於「凍結」Rails版本(以前我們稱之爲「指定Gem版本」的幾個古老而優秀的文章),如DHH's Freeze is cool, so freeze for goodness sakeShould I freeze my Rails application?

爲了知道要指定的版本,我建議您指定最新版本。只需gem install gemname,然後gem list gemname即可查看剛安裝的版本。

相關問題