2015-01-09 103 views
16

我想在模塊中使用'before_action'。如何在模塊中使用'before_action'

不幸的是,我無法得到它的工作。

我在googleing,但是我發現的一切都無法解決問題。

我的模塊文件如下所示:

module ShowController 
    include SimpleController 
    #before_action :set_object, only: [:show] 

    def show 
    set_object 
    end 
end 

我想用outcommented before_action行,而不是展示方法。

因此,我試圖包括以下模塊:

include AbstractController::Callbacks 
    include ActiveSupport::Callbacks 
    include ActiveSupport::Concern 
    include ActiveSupport 

此外,我想 「需要 'active_support /所有'」 或core_ext。

我收到的ERROR_MESSAGE是:

undefined method `class_attribute' for SimpleController::ShowController:Module 

最後,沒有什麼工作了,我沒有找到一個解決方案。

回答

25

我認爲這是你想要做什麼:

class SomeController < ActionController::Base 
    include SimpleController 
end 

module SimpleController 
    extend ActiveSupport::Concern 

    included do 
    before_action :set_object, only: [:show] 
    end 
end