Частичные обновления ActiveRecord в Падрино - PullRequest
1 голос
/ 14 января 2011

Как мне настроить 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 по-прежнему полностью обновляют запись.
Есть ли другое решение или обходной путь?

1 Ответ

0 голосов
/ 01 марта 2011

Это не относится к падрино, а только к активной записи.

Попробуйте его до сохранения.

...