1

如何配置 ActiveRecord 以在 Padrino 应用程序中使用 partial_updates?

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 调用仍会完整更新记录。
还有其他解决方案或解决方法吗?

4

1 回答 1

0

这与 padrino 无关,而仅与活动记录有关。

在 before_save 上试试。

于 2011-03-01T11:47:29.153 回答