簡體   English   中英

用於擴展actioncontroller for rails的插件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM