2015-01-09 5 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