2011-06-21 37 views

Trả lời

193

after_create chỉ hoạt động một lần - ngay sau khi bản ghi được tạo lần đầu tiên.

after_save làm việc mỗi khi bạn lưu các đối tượng - ngay cả khi bạn chỉ cần cập nhật nó nhiều năm sau

Vì vậy, nếu bạn muốn làm hoạt động email này chỉ mới một lần (và sau đó không bao giờ một lần nữa) sau đó sử dụng after_create .

Nếu bạn muốn làm điều đó mỗi thời gian đối tượng được lưu lại, sau đó làm điều đó trong after_save

89

Từ the docs:

after_create()

Được gọi sau Base.save trên các đối tượng mới chưa được lưu (không có bản ghi nào tồn tại).

after_save()

Được gọi sau Base.save (cho dù đó là một tạo hoặc cập nhật tiết kiệm).

1
after_save() 

Hoạt động tốt khi bạn phải lưu mô hình không lưu thường xuyên. Ví dụ cụ thể này thay đổi bản ghi thường xuyên nó sẽ khuyến khích sử dụng

after_commit() 

chắc chắn rằng mô hình được lưu trong cơ sở dữ liệu trước khi hành động được thực hiện after_commit: calculate_credit_score

def calculate_credit_score 
    #Call a Cron job 
end 
Các vấn đề liên quan