Nuevos datos que no persisten en la columna de la matriz Rails en Postgres
Tengo un modelo de usuario con una columna de amigos de texto de tipo. Esta migración se ejecutó para utilizar la función de matriz con postgres:
add_column :users, :friends, :text, array: true
El modelo de usuario tiene este método:
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
La siguiente especificación pasa hasta que yo agregueuser.reload
después de llamar#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
Esto también sucede en el desarrollo. La instancia del modelo se actualiza y tiene el nuevo uid en la matriz, pero una vez que se recarga o vuelve a cargar al usuario en una acción diferente, vuelve a ser lo que era antes deadd_friend
El método fue llamado.
Usando Rails 4.0.0.rc2 y pg 0.15.1
¿Qué podría ser esto?