Как мне настроить ActiveRecord для использования частичного обновления в приложении 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' и 'country' среди других в базе данных.
Когда пользователь обновляет имя, он отправляет уведомление по электронной почте, как и ожидалось. Однако даже когда пользователь изменяет атрибут страны (или любой другой), он отправляет уведомление об изменении имени, что недопустимо.
После проверки журналов я обнаружил, что запрос на обновление для страны выполняет полное обновление, устанавливая все атрибуты записи пользователя. Как такое имя поменялось? метод возвращает true и отправляется электронное письмо с уведомлением об изменении имени.
Если я добавлю следующую строку в app.rb
ActiveRecord::Base.partial_updates = true
Я не вижу разницы. Любые вызовы update_attribute по-прежнему полностью обновляют запись.
Есть ли другое решение или обходной путь?