Rails 4 Postgresql数组数据类型:更新值

我刚刚开始在Postgres中使用Rails 4中的数组数据类型,但是我无法在现有数组上获取值以进行更新。 我有一个名为’quantity’的列,它是一个整数数组([0,0])。 我想更新’quantity [0]’的值,我在控制台中尝试了以下内容:

a = Asset.find(2) => # a.quantity[0] = 5 => 5 a.quantity_will_change! => [5, 0] a.save => true a.reload => # 

如您所见,资产对象的数量值是变化的,但是当我尝试使用“a.save”保存对象时,重新加载对象时不会反映更改。

任何帮助将不胜感激。

谢谢

我对http://apidock.com/rails/ActiveRecord/Dirty的解读是你必须打电话给… ..._will_change! 更改属性之前 。 您应该能够通过检查各种情况下的changes来确认这一点。

更新:我刚刚使用字符串属性测试了行为,即使在调用… ..._will_change之前进行了更改,它仍会保存更新的字符串,因此我的解释可能已关闭。

_will_change! 只有在替换数组时才会更新值。 像[]=这样的就地修改根本不会保存。