Не удается сохранить массив в столбце Postgres с помощью Active Record

Я знаю, что этот вопрос может показаться дублированным, но ни одно из решений, которые я нашел, на самом деле не решило мою проблему.

У меня есть модель с именем домашнее животное с колонкой фотографий, вот моя схема:

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]]

Я уже пробовал несколько способов сохранения, например:

model.array << element
model.array_will_change!
model.save!  

или даже (как предложил этот парень , а также этот другой парень) :

update_attributes locations: locations + [ place ]

и ни один из них, кажется, не работает.

Используя командную строку Postgres, я смог сохранить и обновить массив без проблем, но эта проблема, похоже, связана с активной записью.

активная запись (5.0.0.1) постгрес (9.6.0.0)

Большое спасибо :-)


person rovitulli    schedule 22.10.2016    source источник
comment
Каков результат, когда вы делаете model.photos << 'test'; model.save   -  person Nikhil    schedule 22.10.2016