Как использовать "before_action" в модуле

Я хотел бы использовать 'before_action' в модуле.

К сожалению, я не мог заставить его работать.

Я был googleing, но все, что я нашел, не могло решить проблему.

Мой файл модуля выглядит следующим образом:

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

  def show
   set_object
  end
end

Я хочу использовать outcommented before_action, а не метод show.

Поэтому я пытался включить следующие модули:

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

Кроме того, я попытался "потребовать" active_support/all "или core_ext.

Я получаю сообщение error_message:

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

Наконец, ничего не получилось, и я не нашел решения.

Ответы

Ответ 1

Я думаю, это то, что вы пытаетесь сделать:

class SomeController < ActionController::Base
  include SimpleController
end 

module SimpleController
  extend ActiveSupport::Concern

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