2014-07-17 72 views
0

目前我的應用在rails上運行3.1.3 & ruby​​ 1.9.3。在rails上升級ruby應用

我想升級我的應用程序到Rails 4.1 &紅寶石2.1

誰能告訴我如何升級Rails應用程序?

在此先感謝

+1

我認爲您應該先閱讀:http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html然後詢問特別的問題... –

回答

0

沒有具體定義的升級方法。您可以參考http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html或許多其他人根據自己的經驗編寫的博客文章。只需谷歌他們。

http://www.sitepoint.com/get-your-app-ready-for-rails-4/ https://developer.uservoice.com/blog/2012/03/04/how-to-upgrade-a-rails-2-3-app-to-ruby-1-9-3/

但是遵循幾個點,使其更容易。一次升級一個。首先升級你的紅寶石,然後在第二個週期的軌道。 通過在每個步驟進行測試,因爲寶石可能因其依賴關係而失敗。 手動升級你的寶石,並避免bundle update

0

除了@shivam的答案。

指南通常不包含所有信息。而他們通常不會說爲什麼有些步驟是必要的。

最專業的方法是閱讀發佈說明,至少在下一個主要版本。 Rails遵循語義版本控制,意味着所有以下4.x.x版本都不允許引入破壞公共api更改。

檢查Rails 4 Release Notes。注意標記爲棄用的東西以及提取到單獨的寶石中的東西。最好的教程是Upgrading to Rails 4 Screencast。

有關升級最棘手的部分是將模型中的protected_attributes更改爲控制器中的strong_parameters,作爲違反質量分配保護的默認機制。 如果您的應用程序已經很大程度上依賴於protected_attributes,將模型外部的這種保護移至每個控制器可能是一項艱鉅的任務。在這種情況下,建議堅持使用protected_attributes作爲額外的寶石(同名)。

在紅寶石更新的情況下。您幾乎可以安全地從1.9.3更新到2.1.2。 Ruby自從主要版本2以後纔開始使用sem。如果自1.9.3以來甚至出現了一些不兼容的情況,那麼您的應用程序使用這個功能的可能性非常小。我們可以將我們的所有應用程序從1.9.x升級到最後的2.xx,而不需要單個ruby代碼更改