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
1 2 | 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
1 2 3 4 5 6 7 8 9 10 | before_validation after_validation before_save around_save before_create around_create after_create after_save after_commit/after_rollback |
Updating an Object
1 2 3 4 5 6 7 8 9 10 | before_validation after_validation before_save around_save before_update around_update after_update after_save after_commit/after_rollback |
Destroying an Object
1 2 3 4 5 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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à:
1 2 3 4 5 6 7 8 9 10 11 | 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.
1 2 | Happy Coding |