Raylar ise> 4.0.0 jeneratörler ile CRUD işlemleri oluşturur before_action
değil before_filter
. Aynı şeyi yapıyor gibi görünüyor. Peki bu ikisi arasındaki fark nedir?
Raylar ise> 4.0.0 jeneratörler ile CRUD işlemleri oluşturur before_action
değil before_filter
. Aynı şeyi yapıyor gibi görünüyor. Peki bu ikisi arasındaki fark nedir?
Yanıtlar:
Biz gibi bakın yılında ActionController::Base
, before_action
sadece bir olan yeni sözdizimi için before_filter
.
Ancak, tüm before_filters
sözdizimi artık yok içinde Raylar 5.0 ve kaldırılacaktır Raylar 5.1
Sadece sözdizimi farkı, raylar uygulamasında CRUD vardır ve temelde ad dizinine göre yedi eylem , yeni , oluştur , göster , güncelle , düzenle , yok et .
Değişim sözdizimi dost 4 yapmak o geliştirici raylar filtreden önce hiç eylemden önce .
before_action çağrı yöntemi beyan ettiğimiz eylemlerden önce, gibi
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event , her zaman göster, güncelle, düzenle ve yok etmeden önce çağıracak bir yöntemdir.
before_filter / before_action: herhangi bir eylem yürütülmeden önce yürütülecek herhangi bir şey anlamına gelir.
İkisi de aynı. davranışları aynı olduğu için birbirlerinin takma adıdır.
Before_action ve before_filter arasındaki farkın ne olduğunu anlamak için, işlem ve filtre arasındaki farkı anlamalıyız.
Eylem, yönlendirebileceğiniz bir denetleyicinin yöntemidir. Örneğin, kullanıcı oluşturma sayfanız UsersController # new adresine yönlendirilebilir - bu rotadaki eylem yeni.
Filtreler, denetleyici eylemleriyle ilgili olarak çalışır - bunlardan önce, sonra veya etrafında. Bu yöntemler, denetleyicideki her eyleme ortak veriler yeniden yönlendirerek veya ayarlayarak eylem işlemeyi durdurabilir.
Raylar 4 -> _action
Raylar 3 -> _filter