我試圖促成一個開源項目,我需要一個控制器來處理了幾個需要在提交表單。如何使用Ruby on Rails gem包含控制器?
我創建了一個叫做app/controllers/gemname/my_controller.rb
寶石裏面的目錄裏面這些控制器。
但是,當我嘗試訪問控制器時,似乎沒有加載(我得到一個名稱錯誤,就像我輸入了像NonExistentController類似的東西)。
如何加載我的控制器的寶石?
謝謝!
我試圖促成一個開源項目,我需要一個控制器來處理了幾個需要在提交表單。如何使用Ruby on Rails gem包含控制器?
我創建了一個叫做app/controllers/gemname/my_controller.rb
寶石裏面的目錄裏面這些控制器。
但是,當我嘗試訪問控制器時,似乎沒有加載(我得到一個名稱錯誤,就像我輸入了像NonExistentController類似的東西)。
如何加載我的控制器的寶石?
謝謝!
我們假設你的寶石叫MyGem
,你有一個名爲SuperController
的控制器,你想在應用中使用它。你的控制器應定義爲:
module MyGem
class SuperController < ApplicationController
def whatever
...
end
end
end
並在創業板上市的目錄應該住在app/controllers/my_gem/super_controller.rb
(不的lib
文件夾下)。檢查source for Devise,因爲他們做同樣的事情。
[編輯]您可能從A Guide To Starting Your Own Rails Engine Gem瞭解到關於您當前項目的一些信息。
非常感謝! – 2012-05-06 02:42:48
非常感謝!我喜歡你提到的'guide link'。 – 2013-01-31 06:04:33
昨天我一直在努力。我認爲今天會更容易。謝謝! – Rimian 2013-04-25 23:22:52
布蘭登答案中的指南是非常有用的,但只適用於軌道3.0。從3.1開始,你可以創建一個插件。就像這樣:rails plugin new my_engine --mountable
請參閱本實用的指南:
http://namick.tumblr.com/post/17663752365/how-to-create-a-gemified-plugin-with-rails-3-2-rspec
(>的Rails 3.0)
Rails的官方指南(邊緣):
http://edgeguides.rubyonrails.org/engines.html
http://edgeguides.rubyonrails.org/plugins.html
老enginex:
https://github.com/josevalim/enginex
(僅限3.0)
您的'MyController'是否在'Gemname'模塊中定義?如果不是rails,它會期望它被放置在'app/controllers/my_controller.rb'中。 – 2011-12-31 16:29:52
請閱讀本指南http://guides.rubyonrails.org/plugins.html – taro 2011-12-31 16:48:59
KL-7,如何在Gemname模塊內定義MyController?芋頭,感謝您的信息。我做了,但沒有包含我正在尋找的信息。 – 2011-12-31 18:13:42