1
PadRinoアプリケーションでpartial_updatesを使用するようにActiveRecordを設定するにはどうすればよいですか?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_changed?メソッドがtrueを返し、名前変更の通知電子メールが送信されます。
私はapp.rb
ActiveRecord::Base.partial_updates = true
に以下の行を置けば、私は何の違いを見ていません。すべてのupdate_attribute呼び出しはまだレコードの完全な更新を行います。
他に解決策がありますか?
アクティブなレコードにこの問題がありますか?私は、これ以降のバージョンで修正されている場合、アクティブなレコード3.0.0、任意のアイデアを使用していますか? before_saveを使用することの提案は、私がすでに実装しているように実際は回避策ですが、上記のシナリオでのみ機能します。一般に、after_saveはafter_createの代わりに使用することはできません。私の問題は部分的なアップデートに特有です。私はそれを動作させる必要があります。 – Vignesh