Tìm hiểu về Active Record Callbacks trong Ruby on Rails

Tram Ho

Giới thiệu

Callbacks là một khái niệm không mới, nó khá quen thuộc và xuất hiện ở hầu hết các ngôn ngữ lập trình. Trong ngôn ngữ C++ ta biết đến callback qua khái niệm delegate (con trỏ hàm). Còn với một ứng dụng Rails, khi ta sử dụng các phương thức như là before_action, before_create,…. chính là đang sử dụng các hàm callbacks. Và trong bài viết này chúng ta sẽ đi tìm hiểu rõ hơn về callbacks trong ruby on rails. Trước tiên, chúng ta sẽ tìm hiểu về vòng đời phát triển của đối tượng.

1. Vòng đời phát triển của đối tượng.

Trong quá trình hoạt động của ứng dụng Rails, đối tượng được tạo ra, có thể được update và destroy. Active Record trong Rails cung cấp cho chúng ta các “hooks” trong vòng đời phát triển của đối tượng để có thể điều khiển và kiểm soát dữ liệu của úng dụng. Callback cho phép chúng ta kích hoạt một logic nào đó trước hoặc sau khi đối tượng thay đổi trạng thái. Và chúng ta có thể định nghĩa như dưới đây.

2. Định nghĩa.

Callback là một phương thức của Active Record, nó sẽ được gọi tới vào một thời điểm nào đó trong vòng đời của một đối tượng. Cho phép ta thực thi các phương thức đã khai báo trước đó một cách tự động trước hoặc sau khi đối tượng được created, saved, updated, deleted, validated hoặc loaded từ database. Vậy khi nào thì ta nên dùng callback.

3. Khi nào cần sử dụng callbacks.

Xét ví dụ nhỏ sau: Giả sử trong UsersController cần sử lý action như show, edit, update, delete như sau :

Như ta thấy, cả 4 action đều thực hiện một công việc khi bắt đầu action đó là tìm user trong bảng users bằng params

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo