2017-12-05 3 views
0

Ich muss einen before_action Rückruf in meinem Anwendungscontroller nur für ActiveAdmin und Devise-Controller implementieren. Für Gerätecontroller kann ich Folgendes tun:Wie definiert man einen "before_action" Callback im Application Controller nur für device_controllers und activeadmin Controller?

Wie kann ich das gleiche für ActiveAdmin-Controller tun? Ich habe versucht, eine Methode wie zu machen:

def active_admin_controller? 
if params[:controller] =~ /^admin\//i 
    true 
end 
end 

aber es funktioniert nicht. Irgendwelche Ideen, wie man das gewünschte Ergebnis erreicht? Danke voraus.

+0

Ist das nicht das, was Sie suchen ? https://stackoverflow.com/questions/13180005/modifying-basecontroller-in-rails-activeadmin-gem – inveterateliterate

+0

Nicht genau. Ich muss einen Callback im Application Controller wie 'before_action: some_callback implementieren, außer:: devise_controller? || : active_admin_controller? '. Tut mir leid, ich habe nicht erwähnt, dass es "außer", nicht "wenn" gibt. –

Antwort

0

ich die Lösung gefunden haben, mussten nur die Bedingungen in ein Array setzen:

before_action :some_callback, unless: [:devise_controller?, :active_admin_controller?] 

auch geändert active_admin_controller? Methode:

def active_admin_controller? 
    if request.filtered_parameters['controller'] =~ /^admin\//i 
    true 
    else 
    false 
    end 
end 
Verwandte Themen