In an ActiveRecord::Base
model, I can reset the state of the model to what it was when I got it from the database with reload
, as long as the attri
ActiveRecord does not provide a way to do this, it can only acts on the model attributes.
That being said, I think a more elegant way to do it would be to loop over the ivars and set them to whatever you like :
class User < ActiveRecord::Base
def reload(options = nil)
super
self.instance_variables.each do |ivar|
next if ivar == '@attributes'
self.instance_variable_set(ivar, nil)
end
end
end
Note that we skip @attributes because AR is taking care of it when you reload the attributes.