Di rel> generator 4.0.0 menciptakan operasi CRUD dengan before_actiontidak before_filter. Sepertinya melakukan hal yang sama. Jadi apa bedanya keduanya?
Di rel> generator 4.0.0 menciptakan operasi CRUD dengan before_actiontidak before_filter. Sepertinya melakukan hal yang sama. Jadi apa bedanya keduanya?
Jawaban:
Seperti yang bisa kita lihat di ActionController::Base, before_actionhanya sintaks baru untuk before_filter.
Namun semua before_filterssintaks 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