これは、まもなく、すべての新規ユーザーがRailsについてすぐに見つけ出すものの1つです。私は、レールが実際に変更されたかどうかを確認せずに、すべてのフィールドをserializeキーワードで更新していることに気付きました。ある意味では、これは汎用フレームワークにとって賢明なことです。レールにシリアル化された属性が変更されていなくても更新されないようにする方法はありますか?
しかし、この動作を無効にする方法はありますか?シリアライズされたフィールドの値が変更されているかどうかを追跡できる場合は、更新ステートメントにプッシュされないようにする方法がありますか?私は "update_attributes"を使ってハッシュを対象のフィールドに限定しようとしましたが、レールはまだシリアル化されたフィールドをすべて更新します。
提案?
かなり有望ですね。ありがとう!オーバーライドする必要があることを知ったので、メソッド連鎖を使用する代わりに(スーパーと連動して)これを行うことができます。オーバーライド+スーパーを使用するだけで問題が発生した場合はお知らせください。 – Tabrez
私もそれを試みましたが、うまくいかなかったことに気付きました。問題は、あなたがそれを上書きしてsuperを使用する前に、update_with_dirtyが既にロードされていることです(元のチェーンを介して)。 – Joris
入手しました。ありがとうジョリス! – Tabrez