Новые данные не сохраняются в столбце массива Rails на Postgres
У меня есть пользовательская модель с колонкой друзей типа text. Эта миграция была запущена для использования функции массива с postgres:
add_column :users, :friends, :text, array: true
Пользовательская модель имеет этот метод:
def add_friend(target)
#target would be a value like "1234"
self.friends = [] if self.friends == nil
update_attributes friends: self.friends.push(target)
end
Следующая спецификация проходит, пока я не добавлюuser.reload
после звонка#add_friend
:
it "adds a friend to the list of friends" do
user = create(:user, friends: ["123","456"])
stranger = create(:user, uid: "789")
user.add_friend(stranger.uid)
user.reload #turns the spec red
user.friends.should include("789")
user.friends.should include("123")
end
Это происходит и в разработке. Экземпляр модели обновляется и имеет новый uid в массиве, но после перезагрузки или перезагрузки пользователя в другом действии он возвращается к тому, что было доadd_friend
метод был вызван.
Использование Rails 4.0.0.rc2 и pg 0.15.1
Что бы это могло быть?