如何仅在应用程序控制器中为 devise_controllers 和 activeadmin 控制器定义 before_action 回调?
How to define a before_action callback in application controller only for devise_controllers and activeadmin controllers?
我需要在我的应用程序控制器中为 activeadmin 和设计控制器实现一个 before_action
回调。对于设计控制器,我可以做类似的事情:
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
我需要在我的应用程序控制器中为 activeadmin 和设计控制器实现一个 before_action
回调。对于设计控制器,我可以做类似的事情:
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