Как настроить ActiveRecord для использования partial_updates в приложении Padrino?
Customer < ActiveRecord::Base
after_update :check_name_change
private
def check_name_change
if name_changed?
# send mail notification for change of name.
end
end
end
Учтите, что у пользователя есть атрибуты «имя» и «страна» среди других в базе данных.
Когда пользователь обновляет имя, он отправляет уведомление по электронной почте, как и ожидалось. Однако даже когда пользователь меняет атрибут страны (или любой другой), он отправляет уведомление об изменении имени, что недопустимо.
Проверив журналы, я обнаружил, что запрос на обновление для страны выполняет полное обновление, устанавливая все атрибуты записи пользователя. Как таковое name_changed? Метод возвращает true, и отправляется электронное письмо с уведомлением об изменении имени.
Если я поставлю следующую строку в app.rb
ActiveRecord::Base.partial_updates = true
Я не вижу разницы. Любые вызовы update_attribute по-прежнему выполняют полное обновление записи.
Есть ли другое решение или обходной путь?