W szynach> 4.0.0 generatory tworzą operacje CRUD z before_action
nie before_filter
. Wydaje się, że robi to samo. Jaka jest różnica między tymi dwoma?
W szynach> 4.0.0 generatory tworzą operacje CRUD z before_action
nie before_filter
. Wydaje się, że robi to samo. Jaka jest różnica między tymi dwoma?
Odpowiedzi:
Jak możemy zobaczyć w ActionController::Base
, before_action
jest po prostu nowa składnia dla before_filter
.
Jednak cała before_filters
składnia jest przestarzała w Rails 5.0 i zostanie usunięta w Rails 5.1
To tylko różnica w składni, w aplikacji Railsowej jest CRUD i siedem akcji w zasadzie według indeksu nazw , nowe , tworzenie , pokazywanie , aktualizacja , edycja , niszczenie .
Railsy 4 ułatwiają programistom zmianę składni przed filtrowaniem na przed działaniem .
Metoda wywołania before_action przed czynnościami, które deklarujemy, jak
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event to metoda, która będzie wywoływać zawsze przed pokazaniem, aktualizacją, edycją i zniszczeniem.
before_filter / before_action: oznacza wszystko, co należy wykonać przed wykonaniem jakiejkolwiek akcji.
Oba są takie same. są dla siebie tylko aliasami, ponieważ ich zachowanie jest takie samo.
Aby dowiedzieć się, jaka jest różnica między przed aktywnością a przed_ filtrem, powinniśmy zrozumieć różnicę między akcją a filtrem.
Akcja to metoda kontrolera, do której można kierować. Na przykład strona tworzenia użytkownika może być przekierowana do UsersController # new - nowa jest akcja na tej trasie.
Filtry działają w odniesieniu do działań kontrolera - przed nimi, po nich lub wokół nich. Te metody mogą zatrzymać przetwarzanie akcji poprzez przekierowanie lub skonfigurowanie wspólnych danych dla każdej akcji w kontrolerze.
Szyny 4 -> _action
Szyny 3 -> _filter