Ho un binario 4.2.x app, con elaborato per l'autenticazione - Ho diversi controller.Come faccio a far eseguire a before_action su tutti i controller e le azioni tranne uno?
Voglio il dispositivo autenticate_utente! metodo da eseguire su tutti i controller e le azioni tranne sull'azione dell'indice del controller domestico. (! Naturalmente, authenticate_user si prende cura che meditano azioni come login passare attraverso)
posso garantire che ogni azione di controllo gestisce il before_action in application_controller.rb:
class ApplicationController < ActionController::Base
before_action :authenticate_user!
...
end
Posso anche limitare una serie specifica di azioni su tutti i controller:
class ApplicationController < ActionController::Base
before_action :authenticate_user!, except: [:index]
...
end
Ma non vedo come fare solo home/indice per essere un'eccezione.
È possibile, naturalmente, aggiungere manualmente before_action :authenticate_user!
a ogni controller e aggiungere un'eccezione al controller domestico per l'azione dell'indice. Ma questo non è molto secco, e se aggiungo nuovi controller, devo ricordarmi di aggiungere questo before_action a ciascuno di essi.
Sicuro di aver dichiarato before_action in ApplicationController? –
non importa. Il problema è che non ho saltato prima che l'azione nel controller di autenticazione fosse autonoma, quindi funzionerebbe sempre indipendentemente da cosa. –