Rails: update_attributes does not update any other existing instances referring to the same model instance

StackOverflow https://stackoverflow.com/questions/10463666

Question

I realised the following:

  user1 = User.create - creates a model with id 1 and age  is 0

  same_user = User.find(1)

  same_user.update_attributes(:age => 18)

  p same_user.age # prints out 18
  p user1.age # prints out 0

Why doesnt the existing attribute obtain values from the database?

Was it helpful?

Solution

You need to reload your user. Because it's attributes are saved in memory while they are changed in the databse.

p same_user.age
p user1.reload.age
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top