it-swarm.com.de

Schienen 4: vorher_filter vs. vorher_aktion

In Rails> 4.0.0 erzeugen Generatoren CRUD-Operationen mit before_action nicht before_filter. Es scheint das gleiche zu tun. Was ist der Unterschied zwischen diesen beiden? 

314
freemanoid

Wie wir sehen in ActionController::Base können, ist before_action nur eine neue Syntax für before_filter.

Alle before_filters-Syntax sind jedoch veraltet in Rails 5.0 und werden in Rails 5.1 entfernt.

481
freemanoid

Es ist nur ein Syntaxunterschied, in der Rails-App gibt es CRUD und sieben Aktionen im Wesentlichen nach Name index , new , create , show , update , edit , destroy .

Rails 4 macht es entwicklerfreundlich, die Syntax vor dem Filter nach vor der Aktion zu ändern.

before_action Aufrufmethode vor den Aktionen, die wir deklarieren, wie

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.

63
Awais

Es ist nur eine Namensänderung. before_action ist genauer, da es vor einer Aktion ausgeführt wird.

30
Matthias

before_filter/before_action: bedeutet, dass alles ausgeführt wird, bevor eine Aktion ausgeführt wird.

Beide sind gleich. Sie sind nur ein Alias ​​für einander, da ihr Verhalten gleich ist.

0
Pankaj Dhote

Um herauszufinden, was der Unterschied zwischen before_action und before_filter ist, sollten wir den Unterschied zwischen Aktion und Filter verstehen.

Eine Aktion ist eine Methode eines Controllers, an die Sie eine Weiterleitung an ..__ vornehmen können. Beispielsweise kann Ihre Seite zur Benutzererstellung an UsersController # new geroutet 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 anhalten, indem sie für jede Aktion im Controller allgemeine Daten umleiten oder einrichten.

Schienen 4 -> _Aktion

Schienen 3 -> _filter

0
yusefu