ruby-on-rails-3 - Ruby on Rails - 如何在所有ActiveAdmin控制器中包含mixin/模块?

我编写了一个模块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.class_eval do


 include JsonLog


end



...