我需要在我的应用程序控制器中实现
before_action
回调,仅适用于 activeadmin 和 devise 控制器。对于设备控制器我可以这样做:
before_action :some_callback, if: :devise_controller?
如何对 activeadmin 控制器执行相同操作?我尝试制定如下方法:
def active_admin_controller?
if params[:controller] =~ /^admin\//i
true
end
end
但它不起作用。关于如何达到预期结果有什么想法吗?先谢谢了。
我找到了解决方案,只需将条件放入数组中即可:
before_action :some_callback, unless: [:devise_controller?, :active_admin_controller?]
另外,改变了
active_admin_controller?
方法:
def active_admin_controller?
if request.filtered_parameters['controller'] =~ /^admin\//i
true
else
false
end
end
对我有用的解决方案是使用
config.skip_*
。
# config/initializers/active_admin.rb
ActiveAdmin.setup do |config|
# ...
config.before_action :some_callback
end