In Rails> 4.0.0-Generatoren werden CRUD-Operationen mit before_action
not erstellt before_filter
. Es scheint dasselbe zu tun. Was ist der Unterschied zwischen diesen beiden?
In Rails> 4.0.0-Generatoren werden CRUD-Operationen mit before_action
not erstellt before_filter
. Es scheint dasselbe zu tun. Was ist der Unterschied zwischen diesen beiden?
Antworten:
Wie wir sehen in ActionController::Base
, before_action
ist nur eine neue Syntax für before_filter
.
Die gesamte before_filters
Syntax ist jedoch in Rails 5.0 veraltet und wird in Rails 5.1 entfernt
Es ist nur ein Syntaxunterschied, in der Rails-App gibt es CRUD und sieben Aktionen, im Wesentlichen nach Namensindex , neu , erstellen , anzeigen , aktualisieren , bearbeiten , zerstören .
Mit Rails 4 können Entwickler die Syntax vor dem Filtern in vor der Aktion ändern .
before_action Aufrufmethode vor den Aktionen, die wir deklarieren, wie z
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event ist eine Methode, die immer vor dem Anzeigen , Aktualisieren, Bearbeiten und Zerstören aufgerufen wird.
before_filter / before_action: bedeutet alles, was ausgeführt werden muss, bevor eine Aktion ausgeführt wird.
Beide sind gleich. Sie sind nur Alias für einander, da ihr Verhalten gleich ist.
Um herauszufinden, was der Unterschied zwischen before_action und before_filter ist, sollten wir den Unterschied zwischen action und filter verstehen.
Eine Aktion ist eine Methode eines Controllers, zu der Sie eine Route erstellen können. Beispielsweise kann Ihre Seite zur Benutzererstellung an UsersController # new weitergeleitet werden - new ist die Aktion in dieser Route.
Filter werden in Bezug auf Controller-Aktionen ausgeführt - vor, nach oder um sie herum. Diese Methoden können die Aktionsverarbeitung stoppen, indem sie für jede Aktion in der Steuerung gemeinsame Daten umleiten oder einrichten.
Schienen 4 -> _Aktion
Schienen 3 -> _filter