由於here推出的概念,如何解決Rails插件上的rake任務棄用問題?
的Rails插件::無非是 的Rails :: Engine的詳細,但因爲它是在啓動過程中加載 爲時已晚,但它 沒有相同配置將 作爲裸露的Rails :: Engine使用。
對Rails :: Railtie和 Rails ::引擎,你不應該 繼承自Rails :: Plugin。 Rails :: Plugin自動配置爲引擎 ,只需 置入供應商/插件。由於 這是自動完成的,因此您的 實際上無法在您的插件中聲明 Rails :: Engine,否則會導致相同的 文件加載兩次。這意味着 ,如果您想將發動機裝運爲 寶石,則不能將其用作插件,反之亦然 。
除此之外概念上的差異, 導軌::引擎和Rails ::插件是 之間的唯一區別在於插件在引導過程期間在插件根 自動加載 文件「init.rb」。
不贊成使用rails插件中的rake任務,建議使用lib/tasks代替。如何解決這個問題?我可以簡單地將插件的任務移動到lib/tasks?
這似乎確實起作用。不過,我仍然對這種行爲的替代品應該是什麼感到好奇。即,插件現在如何定義新的任務? – Trejkaz 2010-07-07 04:43:33
他們都在RAILS_ROOT/tasks /,這就是爲什麼只是移動他們解決這個問題,它是一樣的事情,但在不同的地方 – vrsmn 2010-07-14 19:09:15
有助於抓撓癢。謝謝~~ – lkahtz 2011-02-26 03:05:08