4

Rails 4 を使用して Postgres で配列データ型を使い始めたばかりですが、既存の配列の値を更新するのに問題があります。整数の配列である「数量」という列があります( [0,0] )。「数量[0]」の値を更新したいので、コンソールで次のことを試しました。

a = Asset.find(2) 
=> #<Asset id: 2, quantity: [0,0]>

a.quantity[0] = 5
=> 5 

a.quantity_will_change! 
=> [5, 0] 

a.save
=> true

a.reload
=> #<Asset id: 2, quantity: [0,0]>

ご覧のとおり、アセット オブジェクトの数量値は変更されていますが、'a.save' を使用してオブジェクトを保存しようとすると、オブジェクトをリロードしても変更が反映されません。

どんな助けでも大歓迎です。

ありがとう

4

2 に答える 2

1

<attribute>_will_change!配列が置き換えられた場合にのみ値を更新します。のようなインプレース変更[]=はまったく保存されません。

于 2014-05-29T22:19:41.107 に答える