acts_as_bits PluginとRails 2.1のDirty tracking & Partial Updatesの相性が最悪
Rails 2.1系ではいくつか新機能が加わっていますが、「Partial Updates」もその一つです。
「Partial Updates」では、「Dirty tracking(Dirty Object)」というActiveRecordのモデルのattributesが変更されたかどうかをチェックする機能を使って、「変更された値のみをSQLに含める」ことを実現しています。
つまり、以下のようなコードを書いていても、実際に@personに変更が無ければ更新しないし、変更があった時でも変更点のみをSQLにしてくれるのです。
すばらしい!!
-
def edit
-
@person = params[:person]
-
@person.save!
-
end
ところで、こいつは普通に使ってる分には本当に便利なのですが、どうも acts_as_bits と一緒には使えないっぽいです。
いま acts_as_bits を使った以下のようなモデルがあるとすると、
-
class Setting
-
acts_as_bits :operations => [:s1, :s2, :s3]
-
end
こいつの変更が Dirty tracking で把握できていないようです。











