Я выполняю периодическую задачу рейка, чтобы обновлять атрибуты в моей модели User
. Я хотел бы выполнить Mailer, если определенный атрибут изменился, но я не могу вызывать модуль attribute_changed?
, так как он не знает экземпляр запроса - обычно вы делаете это в модели с обратным вызовом after_save
.Запрос измененных атрибутов модели в задаче rake
Так что у меня это:
task :my_task => :environment do
User.all.each do |user|
@howmanythings = user.things.size
user.update_attribute(:total_things, @howmanythings)
user.save
//THIS IS THE BIT THAT DOES NOT WORK:
if user.total_things_changed? == true
SEND MAILER
end
end
end
На данный момент пользователь. total_things_changed?
возвращает false
, вне зависимости от того, обновила ли этот файл атрибут rake. Короче говоря, как мне выполнить обратный вызов after_save (или эквивалент) внутри задачи? Спасибо заранее.