17
創建記錄時,是否有方法在after_commit上跟蹤對模型的更改?我嘗試過使用髒模塊,並且能夠在記錄更新時跟蹤更改,但是創建記錄時不會記錄更改。after_commit中的跟蹤模型更改:on =>:創建回調
創建記錄時,是否有方法在after_commit上跟蹤對模型的更改?我嘗試過使用髒模塊,並且能夠在記錄更新時跟蹤更改,但是創建記錄時不會記錄更改。after_commit中的跟蹤模型更改:on =>:創建回調
您不能使用導軌changed?
方法,因爲它總是會返回false。要在事務提交後跟蹤更改,請使用previous_changes
方法。它將返回一個帶有屬性名稱的散列作爲關鍵字。然後,您可以檢查您的attribute_name是否在哈希中:
after_commit :foo
def foo
if previous_changes[attribute_name]
#do your task
end
end
謝謝!爲了檢查哈希是否包含你的屬性,你可以做這樣的事情'if @ item.previous_changes.has_key?('attribute_name')' –
剛剛創建什麼東西時,會發生什麼變化? –
從零到有效值的字段。 –