我有以下关注:
- ./应用程序/控制器/关注点/活动助手. rb *
module ActivityHelper
extend ActiveSupport::Concern
included do
before_action :my_method, except: %i[update destroy]
end
def my_method
...
end
end
目前,我包括在几个主动管理页面控制器手动这样的关注:
- ./应用程序/管理员/ Jmeter 板. rb *
controller do
include ActivityHelper
end
我已经尝试了以下操作,但它无法正常工作而不出现任何错误:
1.我在 *./app/controllers/concerns/active_admin_controller_concerns. rb * 中创建了一个新模块:
module ActiveAdminControllerConcern
extend ActiveSupport::Concern
included do
controller do
include ActivityHelper
end
end
end
1.我在 *./config/initializers/active_admin. rb * 中添加了以下方法和配置:
一个三个三个一个
如何在所有活动管理页面控制器中自动只包含模块ActivityHelper?
1条答案
按热度按时间wn9m85ua1#
要在所有活动管理页面控制器中自动包含模块ActivityHelper,可以在ActiveAdminControllerConcern模块中使用ActiveSupport.on_load方法。以下是修改代码的方法:
在此更新模块中,ActiveSupport.on_load方法用于将ActivityHelper模块添加到active_admin_controller加载挂钩。这将确保ActivityHelper包含在所有Active Admin页面控制器中,而无需手动包含它。
然后,您可以将以下方法添加到./config/initializers/active_admin.rb文件中,以加载ActiveAdminControllerConcern模块:
在这个更新的方法中,使用ActiveAdmin::ResourceController类而不是ActiveAdmin::ResourceDSL,因为我们希望将ActiveAdminControllerConcern模块包含在控制器类本身中,而不是包含在用于定义资源的DSL中。
通过这些更改,ActivityHelper模块现在应该自动包含在所有Active Admin页面控制器中。