Каждый раз, когда вы делаете find
, вы получаете новый экземпляр User
на основе текущих значений в таблице users
.Итак, когда вы User.find(1790).save
, экземпляр User
больше не имеет .archived = false
, потому что вы только что извлекли запись из базы данных (выполнив User.find
), которая имеет archived = true
.
Try:
User.find(1790).archived # => true
User.find(1790).archived = false
User.find(1790).changed? # => false
User.find(1790).save # => true
User.find(1790).archived # => true
Но посмотрите, что произойдет, когда вы это сделаете:
User.find(1790).archived # => true
User.find(1790).update(archived: false) # => true
User.find(1790).archived # => false