2010-06-11 51 views
5

我有一個Rails 2.3應用程序,我想將它提取到插件或引擎中。該應用程序具有用戶身份驗證,以及由祖先插件支持的基本cms功能。將Rails應用程序提取到插件或引擎中

我想將應用程序的邏輯提取到插件/引擎中,以便我可以將此代碼用於將來的項目,如果需要可以使用不同的「皮膚」或「主題」。

我不完全確定我是否理解插件和引擎概念之間的區別,所以這將是一個很好的第一點。

什麼是最好的方法,是否有任何良好的出發點,鏈接,解釋,例子,我應該遵循。另外,隨着R3的發佈考慮,有什麼,我應該知道這一點,關於插件等

我要開始通過觀看Ryan的http://railscasts.com/episodes/149-rails-engines 但顯然這是一歲多現在,我面臨的挑戰之一是找到有關此主題的最新信息和相關信息。

感謝所有提示和幫助。

回答

4

實際上,轉換應用程序是相當直接的。只需創建一個插件文件夾,在其中放置一個應用程序文件夾,其中包含所有yor模型視圖控制器文件夾,就是這樣。

雖然你將不得不自己管理你的遷移。您還必須定義rake-tasks將文件複製到公用文件夾。我認爲railscasts仍然是最新的,如果它在rails 2.3中更容易實現的話。

祝你好運!

[編輯:for rails3] Rails 3引擎非常乾淨,功能強大。查看Jose Valim的gist

+0

Rails 2引擎會在Rails 3應用程序中工作嗎?這個問題仍然是一樣的過程,還是因爲這個問題發佈而發生了變化? – deb 2011-07-09 00:12:27

+0

導軌2引擎仍然在導軌3中工作。但導軌3引擎有更好的集成,現在可能更多。所以你仍然可以使用Rails 2引擎,但是將它們轉換爲Rails 3引擎真的值得。一個軌道2引擎是一個插件,軌道3插件將最有可能是一個寶石:更清潔:) – nathanvda 2011-07-09 18:14:46

+0

@ nathanvda:無效鏈接 – 2012-11-26 12:22:10

1

編寫插件與編寫應用程序完全不同,如果您已經擁有自己的應用程序代碼,那麼應該直接將其轉換爲插件。

請注意,如果您在應用程序中使用第三方插件,可能會非常混亂。

3

由於向後不兼容的變化,您可能會更好地將您的引擎集中在Rails 3上,而不是試圖使它與Rails 2和Rails 3兼容。這裏是一個更新的tutorial for Rails 3

也由Rails核心成員何塞瓦利姆的書「Crafting Rails applications」,有一個很好的篇章。詮釋他如何使用他的工具EngineX生成Rails 3引擎結構,以便您可以更輕鬆地爲您的Rails 3項目創建引擎。他的創業板devise也是一個Rails引擎,它也很不錯,因爲您可以通過將模板複製到應用程序目錄中輕鬆進行自定義,並允許您對您想要自定義的控制器進行子類化。

相關問題