如何在所有ActiveAdmin控制器中包含mixin/module?



我编写了一个模块 -JsonLog- 它使用 Rails 提供的append_info_to_payload钩子将一些自定义指标添加到日志记录检测中。我想在ActiveAdmin的所有控制器中包含/混合此模块。

我已经尝试了以下方法,并且它有效...

ActiveAdmin.register MyModel do
controller do
include JsonLog
end
end

。但这会迫使我在 ActiveAdmin 注册的每个模型/控制器中编写样板代码。我如何在一个地方执行此操作(并在此过程中确保永远不会错过此样板(?

不要害羞地阅读源代码。 有一个ActiveAdmin::BaseController继承自InheritedResources::Base,而又继承自您的ApplicationController。如果您确实需要专门修改ActiveAdmin::BaseController请在config/initializers/active_admin.rb中尝试此操作:

ActiveAdmin::BaseController.class_eval do
include JsonLog
end

最新更新