我知道这个问题可能听起来很复杂,但我发现的解决方案都没有解决我的问题。
我有一个名为pet with model column的模型,这是我的架构:
t.string "photos", default: [], array: true
我没有在班上使用序列化方法,因为很多其他sources证实它没有必要。
这是我的目标:
#<Pet id: 9, name: nil, age: nil, vaccinated: nil, male: nil, pet_description: nil, additional_info: nil, size: nil, neutered: nil, classified_id: nil, created_at: "2016-10-21 23:36:37", updated_at: "2016-10-21 23:55:50", kind: nil, photos: []>
无论我做什么,我都无法坚持使用新的照片阵列:
UPDATE "pets" SET "updated_at" = $1, "photos" = $2 WHERE "pets"."id" = $3 [["updated_at", 2016-10-21 23:51:30 UTC], ["photos", "{}"], ["id", 9]]
我已经尝试了多种持久方式,like:
model.array << element
model.array_will_change!
model.save!
甚至(like this guy suggested,以及此other guy):
update_attributes locations: locations + [ place ]
并且它们似乎都不起作用。
使用Postgres命令行我能够保存和更新数组而没有任何问题,但这个问题似乎与活动记录有关。
activerecord(5.0.0.1) postgres(9.6.0.0)
非常感谢: - )