In rails> i generatori 4.0.0 creano operazioni CRUD con before_action
no before_filter
. Sembra fare la stessa cosa. Quindi qual è la differenza tra questi due?
In rails> i generatori 4.0.0 creano operazioni CRUD con before_action
no before_filter
. Sembra fare la stessa cosa. Quindi qual è la differenza tra questi due?
Risposte:
Come possiamo vedere in ActionController::Base
, before_action
è solo una nuova sintassi per before_filter
.
Tuttavia, tutta la before_filters
sintassi è obsoleta in Rails 5.0 e verrà rimossa in Rails 5.1
È solo la differenza di sintassi, nell'app Rails c'è CRUD e sette azioni sostanzialmente per indice dei nomi , nuove , crea , mostra , aggiorna , modifica , distruggi .
Rotaie 4 Make It sviluppatore amichevole per la sintassi cambiamento prima del filtro di prima dell'azione .
before_action chiama il metodo prima delle azioni che dichiariamo, come
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event è un metodo che chiamerà sempre prima di mostrare, aggiornare, modificare e distruggere.
before_filter / before_action: indica qualsiasi cosa da eseguire prima di eseguire qualsiasi azione.
Entrambi sono uguali. sono solo alias l'uno per l'altro poiché il loro comportamento è lo stesso.
Per capire qual è la differenza tra before_action e before_filter, dovremmo capire la differenza tra azione e filtro.
Un'azione è un metodo di un controller a cui è possibile indirizzare. Ad esempio, la pagina di creazione dell'utente potrebbe essere indirizzata a UsersController # new - new è l'azione in questa route.
I filtri vengono eseguiti in relazione alle azioni del controller - prima, dopo o intorno a loro. Questi metodi possono arrestare l'elaborazione dell'azione reindirizzando o impostando dati comuni su ogni azione nel controller.
Rotaie 4 -> _action
Rotaie 3 -> _filter