如何在模块中使用'before_action&39;?[英] How to use 'before_action' in a module

本文是小编为大家收集整理的关于如何在模块中使用'before_action&39;?的处理方法,想解了如何在模块中使用'before_action&39;?的问题怎么解决?如何在模块中使用'before_action&39;?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想在模块中使用"before_action".

很遗憾,我无法让它工作.

我在谷歌上搜索,但我发现的一切都无法解决问题.

我的模块文件如下所示:

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

  def show
   set_object
  end
end

我想使用注释掉的 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

最后,什么都没解决,我也没有找到解决办法.

推荐答案

我认为这就是你想要做的:

class SomeController < ActionController::Base
  include SimpleController
end 

module SimpleController
  extend ActiveSupport::Concern

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

本文地址:https://www.itbaoku.cn/post/786580.html