2015-01-09 88 views
2

文件,如config/application.rb和很多Rails的樣板包括象舊註釋掉設置

# Custom directories with classes and modules you want to be autoloadable. 
# config.autoload_paths += %W(#{config.root}/extras) 

# The default locale is :en and all translations from config/locales/*.rb ... 
# config.i18n.default_locale = :de 
... 

可能等待啓用有益的參考意見。我的問題是,當從Rails 2轉移到Rails 3到Rails 4(以及未來的Rails 5)時,你應該如何思考這些?

標誌和設置會拋出棄用警告,因爲次要和主要版本,但顯然不是當它們被註釋掉時。我可以想象一種情況,在Rails 2中生成了一個設置,然後在Rails 5中錯誤地啓用了設置,跳過了棄用警告。

Rails 2至3升級有一個寶石,可以幫助你。據推測,這些評論被忽略,因爲他們沒有運行。測試不會拿起它們。我想也許一個靜態分析工具可以幫助,但我不知道任何。

您可以刪除所有這些評論carte-blanche,然後查找您在文檔中的版本的任何定義,我想。也許這不是問題,因爲正常的CI /測試/部署檢查會檢查任何不合適的或錯誤的設置,所以您會受到此保護。

我更感興趣的是在部署之前刪除已註釋掉的設置的工具,或者對已經對這些註釋掉的設置做出決定的長時間運行的應用程序的任何人。

回答

1

由不同版本的rails生成的文件包含不同的代碼+引用註釋,與該版本的rails的特定配置項集有關。配置&一個版本的相關注釋可能對另一個版本無用。

確保應用程序在配置文件中包含正確內容(包括註釋)的一種方法是將每個文件的內容與爲該特定版本生成的虛擬導軌應用程序進行比較。

我通過3.0,3.1,3.2,4.0 & 4.1升級了Rails版本2.3.18至4.2的Rails應用程序,並且在每一步中,與使用目標版本的Rails創建的虛擬應用程序進行比較,使其更快升級,在新版本中增加對代碼的信心。

我懷疑是否有自動化工具可以幫助完成這項工作。