Di rel> generator 4.0.0 menciptakan operasi CRUD dengan before_action
tidak before_filter
. Sepertinya melakukan hal yang sama. Jadi apa bedanya keduanya?
Di rel> generator 4.0.0 menciptakan operasi CRUD dengan before_action
tidak before_filter
. Sepertinya melakukan hal yang sama. Jadi apa bedanya keduanya?
Jawaban:
Seperti yang bisa kita lihat di ActionController::Base
, before_action
hanya sintaks baru untuk before_filter
.
Namun semua before_filters
sintaks tidak lagi digunakan dalam Rails 5.0 dan akan dihapus dalam Rails 5.1
Itu hanya perbedaan sintaksis, dalam aplikasi rel ada CRUD, dan tujuh tindakan pada dasarnya berdasarkan indeks nama , baru , buat , tampilkan , perbarui , edit , musnahkan .
Rails 4 membuatnya ramah bagi pengembang untuk mengubah sintaksis sebelum filter ke sebelum aksi .
before_action metode panggilan sebelum tindakan yang kami nyatakan, sukai
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event adalah metode yang akan memanggil selalu sebelum menampilkan, memperbarui, mengedit, dan menghancurkan.
before_filter / before_action: berarti apa saja yang akan dieksekusi sebelum tindakan apa pun dijalankan.
Keduanya sama. mereka hanya alias untuk satu sama lain karena perilaku mereka sama.
Untuk mengetahui apa perbedaan antara before_action dan before_filter, kita harus memahami perbedaan antara tindakan dan filter.
Aksi adalah metode pengontrol yang dapat Anda gunakan untuk rute. Misalnya, halaman pembuatan pengguna Anda mungkin dialihkan ke UsersController # new - new adalah aksi dalam rute ini.
Filter dijalankan sehubungan dengan tindakan pengontrol - sebelum, setelah atau di sekitarnya. Metode ini dapat menghentikan pemrosesan tindakan dengan mengarahkan ulang atau mengatur data umum ke setiap tindakan dalam pengontrol.
Rails 4 -> _action
Rails 3 -> _filter