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?

Respuestas a la pregunta(3)

Su respuesta a la pregunta