1
如何配置ActiveRecord以在Padrino應用程序中使用partial_updates?Padrino中的ActiveRecord部分更新
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'。
當用戶更新名稱時,它會按預期發送電子郵件通知。但是,即使用戶更改國家(或任何其他)屬性,它也會發送名稱更改通知,這是不可接受的。
檢查日誌後,我發現國家的更新查詢正在進行全面更新,並設置了用戶記錄的所有屬性。像這樣的name_changed?方法返回true併發送名稱更改的通知電子郵件。
如果我把下面的行app.rb
ActiveRecord::Base.partial_updates = true
我看不出有什麼差別。任何update_attribute調用仍會完整記錄更新。
是否有其他解決方案或解決方法?
所以你的意思是活躍的記錄有這個問題?我正在使用活動記錄3.0.0,任何想法,如果這已被修復在更高版本? 您使用before_save的建議確實是一種解決方法,因爲我已經實現了它,但它只能在上述場景中使用。一般來說,我們不能總是使用before_save代替after_create。我的問題是特定於部分更新,我需要讓它工作。 – Vignesh 2011-03-04 18:56:27