Callbacks trong Rails
Bài đăng này đã không được cập nhật trong 4 năm
Tìm hiểu về callbacks
- Callback là một phương thức trong Activerecord, được sử dụng khi đối tượng cần.
- Callback thường dùng để gọi và thực thi các phương thức nào đó trước và sau khi đối tượng có các thay đổi như create, update, destroy,load data, validate, save, ...
- Vì callback là phương thức nên được khai báo trong model trước khi sử dụng, chúng ta sẽ có 2 cách khai báo callbacks đó là
- Khai báo bình thường
- Khai báo kiểu block
lưu ý : đối với cách khai báo này thì nó sử dụng cho toàn action controller, để áp dụng với một hoặc một số action cụ thể, ta viết
- Danh sách các callback có sẳn trong rails
Creating an Object
before_validation
after_validation
before_save
around_save
before_create
around_create
after_create
after_save
after_commit/after_rollback
Updating an Object
before_validation
after_validation
before_save
around_save
before_update
around_update
after_update
after_save
after_commit/after_rollback
Destroying an Object
before_destroy
around_destroy
after_destroy
after_commit/after_rollback
Để bỏ qua callback ta có thể dùng cách sau
-
Sử dụng phương thức skip_callback
-
Tiện đây mình nói thêm về các method mà có thể sử dụng callback trong rails:
create
create!
destroy
destroy!
destroy_all
save
save!
save(validate: false)
toggle!
touch
update_attribute
update
update!
valid?
Ngoài ra các method bỏ qua callbacks đó là:
decrement!
decrement_counter
delete
delete_all
increment!
increment_counter
update_column
update_columns
update_all
update_counters
Tổng quát Theo mình nghỉ callbacks là phương thức không thể thiếu khi làm việc với rails hay mọi ngôn ngữ khác, qua bài viết này mình hi vọng có thể giúp các bạn thêm một ít trong quá trình tìm hiểu callbacks, cảm ơn bạn đã đọc.
Happy Coding
All rights reserved