2016-05-23 119 views
1

我正在將Rails 3應用程序升級到Rails 4,並使用舊供應商/插件目錄的現有插件。在可能的情況下,我已經切換到寶石,在其他情況下,我已經將它們移到lib並在config/initializers中創建了初始化程序。將Rails 3升級到Rails 4 rake任務「不知道如何構建任務」

其中一些插件添加了現在失敗的rake任務,出現錯誤「不知道如何構建任務'X',其中X是任何已遷移到lib目錄的任務。在升級到Rails 4時需要採取哪些遷移rake任務?

+0

確實 'bundle exec rake' 得到同樣的效果嗎? –

回答

1

舊的Rails供應商插件樣式會將rake任務放入plugins子目錄下的lib/tasks子文件夾中,舊的文件結構看起來像這樣。

/vendor/plugins/plugin1/lib/tasks/foo.rake 
/vendor/plugins/plugin2/lib/tasks/bar.rake 

Rails 4沒有支持插件,所以你需要切換到寶石或移動插頭插入lib子目錄並創建一個初始化程序。這爲rake任務提供了一個新的目錄結構,看起來像這樣。

/lib/plugin1/lib/tasks/foo.rake 
/lib/plugin2/lib/tasks/bar.rake 

要拿起這些耙任務,但保留結構,它保持打包帶您可以將下面一行添加到Rake文件的插件。

Dir["lib/**/lib/tasks/**/*.rake"].each{ |r| load r } 
相關問題