3

Rails3の使用シリアル化された属性を含むモデルがいくつかあります。シリアル化を実行するために、私は現在3つの異なる手法を使用しています。activerecordストア; 構成可能なgemを保存します。

いずれの場合も、モデルインスタンスを保存すると、コンテンツが変更されていなくても、シリアル化された属性が更新されます。これは、特にreadmeに記載されているように、ストアで構成可能なgemを使用した場合の驚くべき発見でした。

「StoreConfigurableは、親オブジェクトが変更されたときにそれを通知するのに十分スマートです。ダムでもありません。設定した値が異なるか、新しいか、構成の状態が変更された場合にのみ、変更がトリガーされます。」

私はここでトリックを見逃していますか、それともこれが予想される動作である場合、それをオーバーライドする方法はありますか?

4

2 に答える 2

3

シリアル化された列が常に保存されているモデルは、この回答によると予想される動作です。

「設定可能なgemの保存」は試していませんが、それを検出するのに十分スマートなはずです。

于 2012-04-18T06:33:30.973 に答える
1

私も同様の問題を抱えているので、更新する前にすべての値をリセットし、新しい値を入力できるようにします。

于 2012-04-12T13:37:51.410 に答える