Freeze field in active record

Hello,

I have a freeze field in a table (that I can't change). When I try to find a record in this table I have the exception :

    C:/DATA/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.1.0/lib/active_record/attribute_methods.rb:104:in `instance_method_already_implemented?'     C:/DATA/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.1.0/lib/active_record/attribute_methods.rb:72:in `define_attribute_methods'     C:/DATA/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.1.0/lib/active_record/attribute_methods.rb:71:in `each'     C:/DATA/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.1.0/lib/active_record/attribute_methods.rb:71:in `define_attribute_methods'     C:/DATA/InstantRails-2.0/ruby/lib/ruby/gems/1.8/gems/ activerecord-2.1.0/lib/active_record/attribute_methods.rb:238:in `method_missing'

any idea to avoid the problem? Is it possible to change the name of the attribute in the active record class ?

Many thanks!

Ruby objects already have a freeze method (it makes the object immutable).

The easiest way out is probably to write your own accessor methods:

def some_other_name   self[:freeze] end

def some_other_name= value   self[:freeze] = value end

Fred

Thanks for the answer, but the problem comes frome the freeze method, It throws :

ActionView::TemplateError (freeze is defined by ActiveRecord) on line #75 of promo_structural/_promo_v2.rhtml:

when I execute any access to my ActiveRecord, even to other attributes

Christophe

Thanks for the answer, but the problem comes frome the freeze method, It throws :

ActionView::TemplateError (freeze is defined by ActiveRecord) on line #75 of promo_structural/_promo_v2.rhtml:

when I execute any access to my ActiveRecord, even to other attributes

Ah yes, that actually makes sense. I suppose you could use a select
option to select the column with another name (ie select foo as bar). Can't think of another way out without hacking around with the
activerecord code (if I was going to do that I would change raise DangerousAttributeError, "#{method_name} is defined by
ActiveRecord" if @@_defined_activerecord_methods.include?(method_name) to return true if @@_defined_activerecord_methods.include?(method_name) (in attribute_methods.rb))

Fred