5

同じオブジェクトの after_save コールバックで、シリアル化された属性をいくつかのデータで更新しようとしています。

さまざまな理由 (副作用、無限ループ) から、コールバックをトリガーしたくありません。これを実現する一般的な方法は を使用することupdate_columnですが、残念ながら、シリアル化された属性では機能しません。

コールバックに条件を付けて、コールバックが再度呼び出されるのを回避できることは承知していますが、コールバックをトリガーしないが、シリアル化された属性で機能する update_attribute の形式が必要であると感じています。

助言がありますか?

4

3 に答える 3

0

列を更新する前に、ハッシュをコーディングする必要があります。

update_column(:properties, self.class.serialized_attributes['properties'].dump(properties))
于 2014-03-12T10:05:49.260 に答える