我剛開始使用rails gems,想知道如何最好地爲現有的rails模塊添加功能。例如,如果我想添加一個新的形式幫助,我通常做這樣的事情:Writing Rails Gems:添加到現有導軌模塊的正確方法?
class ActionView::Helpers::FormBuilder
# My form defs in here
end
但我想如果這是做事的最優雅的方式 - 特別是如果,例如,我將把新功能包裝在一個gem中。
例如,假設我正在創建gem「MyGem」,並且我只希望其功能在控制器中調用gem時存在。所以我添加了控制器包括MyGem「,並在lib/my_gem.rb我通常做類似:
# lib/my_gem.rb
module MyGem
# My form defs in here
end
的問題是:什麼是覆蓋在DEFS的ActionView的標準方式: :Helpers :: MyGem模塊中的FormBuilder模塊?
乾杯......
喜shingara - 感謝您的快速反應。從類FormBuilder等類繼承,但在諸如(例如)ActionView :: Helpers :: FormHelper,其中方法不包含在類中的模塊,我得到好舊的「錯誤的參數類型模塊(預期類)「。這是什麼最初扔了我 - 也許我的問題是如何從模塊中的方法繼承沒有類? – PlankTon 2012-03-21 09:12:14
PS:只是爲了搶先:有興趣:: FormHelper爲了修改'form_for'的目的。我知道內部構建者應該在:: FormBuilder中進行修改。 ;-) – PlankTon 2012-03-21 09:14:56
您需要在模塊中創建您的課程我更新答案 – shingara 2012-03-21 09:15:23