我编写了一个模块JsonLog append_info_to_payload hook,我想在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
InheritedResources::Base
ApplicationController
config/initializers/active_admin.rb
ActiveAdmin::BaseController.class_eval do include JsonLog end