[英]Plugin to extend actioncontroller for rails
我正在寫第一個rails的插件。 該插件應該擴展actioncontroller :: base
所以在完成這里的教程后,我做了...
# Foo
class << ActionController::Base
def function_name
假設插件被稱為foo ...但是當我從一個動作調用function_name時,沒有任何反應......似乎甚至沒有調用function_name。 沒有方法丟失錯誤,所以我確定插件已被加載...
我真的很難受!
你應該通過on_load鈎子來做到這一點:
ActiveSupport.on_load(:action_controller) do
include Foo
end
這將推遲包括模塊,直到ActionController :: Base正常加載。 這將避免AC::Base
過早加載,這可以在許多Rake任務和加載控制台時節省一些加載時間。
您需要在ActionController中包含一個類。
module Foo
def function_name
end
end
ActionController::Base.send(:include, Foo)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.