Is it possible to to freeze a single attribute of an ActiveRecord (Rails 2.3.5). Hopefully in a way that isn't deprecated in 2.3.8 or 3.0.
TIA, Jeffrey
Is it possible to to freeze a single attribute of an ActiveRecord (Rails 2.3.5). Hopefully in a way that isn't deprecated in 2.3.8 or 3.0.
TIA, Jeffrey
attr_readonly ?
Fred
@frederick i think he want to freeze a feature of and old rails version so he doesnt need to migrate his app
and still be able to use the new version of rails
Quoting Frederick Cheung <frederick.cheung@gmail.com>:
> Is it possible to to freeze a single attribute of an ActiveRecord (Rails > 2.3.5). Hopefully in a way that isn't deprecated in 2.3.8 or 3.0. > attr_readonly ?
Not quite what I wanted, but interesting none the less. I wanted an attribute that could not be modified in memory. From the documentation, this allows it to be modified, but won't write the modified value to the DB.
I think a way to do this is create the value on object instantiation, freeze it, and then assign it to the attribute. It's a calculated value in an ActiveRecord that has associated objects. I want to make sure, one of the associated objects doesn't modify the value. No write accessor just prevents changing the attribute to refer to a different object. It does not prevent modifying the assigned object.
Thanks, Jeffrey
Quoting Frederick Cheung <frederick.che...@gmail.com>:
> > Is it possible to to freeze a single attribute of an ActiveRecord (Rails > > 2.3.5). Hopefully in a way that isn't deprecated in 2.3.8 or 3.0.
> attr_readonly ?
Not quite what I wanted, but interesting none the less. I wanted an attribute that could not be modified in memory. From the documentation, this allows it to be modified, but won't write the modified value to the DB.
I think a way to do this is create the value on object instantiation, freeze it, and then assign it to the attribute. It's a calculated value in an ActiveRecord that has associated objects. I want to make sure, one of the associated objects doesn't modify the value. No write accessor just prevents changing the attribute to refer to a different object. It does not prevent modifying the assigned object.
You could overwrite the read accessor to call freeze! for you.
Fred