Отслеживание изменений модели в after_commit: on =>: создание обратного вызова
Есть ли способ отслеживать изменения модели на after_commit при создании записи? Я попытался использовать грязный модуль и смог отслеживать изменения, когда запись была обновлена, но когда запись создана, изменения не записываются.
Ответ 1
Вы не можете использовать метод rails changed?, так как он всегда будет возвращать false. Чтобы отслеживать изменения после совершения транзакции, используйте метод previous_changes. Он вернет хэш с именем атрибута в качестве ключа. Затем вы можете проверить, находится ли ваше имя атрибута в хеше:
after_commit :foo
def foo
if previous_changes[attribute_name]
#do your task
end
end