ruby-on-rails - Rails 4 Postgresql 数组数据类型 : updating values

标签 ruby-on-rails arrays postgresql ruby-on-rails-4 rails-activerecord

我刚开始在带有 Rails 4 的 Postgres 中使用数组数据类型,但我无法获取现有数组的值以进行更新。我有一个名为“数量”的列,它是一个整数数组 ([0,0])。我想更新 'quantity[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]>

如您所见, Assets 对象的数量值发生了变化,但是当我尝试使用“a.save”保存对象时,当我重新加载对象时,更改没有反射(reflect)出来。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

我对 http://apidock.com/rails/ActiveRecord/Dirty 的阅读是您必须调用 ..._will_change! 在更改属性之前。您应该能够通过检查各种情况下的更改来确认这一点。

更新:我刚刚用字符串属性测试了行为,即使在调用 ..._will_change 之前进行了更改,它仍然会保存更新后的字符串,所以我的解释可能不正确。

关于ruby-on-rails - Rails 4 Postgresql 数组数据类型 : updating values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19989924/

相关文章:

ruby-on-rails - Rails/Devise - 在语言环境文件中添加 ruby​​ 代码?

Java-Selection 按 int 键对对象数组进行排序并显示在表中

Javascript - 多次循环同一数组

postgresql - 如何查看取决于postgres中的主键约束

sql - 选择满足两个条件的ID

ruby-on-rails - 谷歌地图标记只显示了它的四分之一

ruby-on-rails - 如何在路径中自动包含 Gem?

ruby-on-rails - 如何垂直显示 simple_form

PHP 对象索引作为字符串?

sql - 触发器尚未执行但已创建