2011-01-14 7 views
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呼び出しはまだレコードの完全な更新を行います。
他に解決策がありますか?

答えて

0

これはpadrinoとは関係なくアクティブなレコードのみに関連しています。

before_saveで試してみてください。

+0

アクティブなレコードにこの問題がありますか?私は、これ以降のバージョンで修正されている場合、アクティブなレコード3.0.0、任意のアイデアを使用していますか? before_saveを使用することの提案は、私がすでに実装しているように実際は回避策ですが、上記のシナリオでのみ機能します。一般に、after_saveはafter_createの代わりに使用することはできません。私の問題は部分的なアップデートに特有です。私はそれを動作させる必要があります。 – Vignesh

関連する問題