Is there a way to alias an automaically created model attribute? I have a column named start_time, and when I use
alias_method :default_start_time, :start_time
In the model's class definition, I get an "undefined method" error
Thanks! Daniel
Is there a way to alias an automaically created model attribute? I have a column named start_time, and when I use
alias_method :default_start_time, :start_time
In the model's class definition, I get an "undefined method" error
Thanks! Daniel
Nope. Attribute access is implemented through method_missing, which means that the method you're trying to alias just won't exist. You can still alias things the "long" way:
def default_start_time start_time end
or on one line, if you prefer:
def default_start_time; start_time end
Daniel Higginbotham wrote:
Try alias_attribute.
jeremy
Yeah, it's easy enough to miss: the method_missing defined on line 1090 (activerecord 1.14.4, base.rb) implements the dynamic finders for the class, and the method_missing defined further down on line 1770 implements attribute access for the instances. They're used in different contexts (e.g. Person.find_by_first_name vs person.first_name).
Joe Ruby MUDCRAP-CE wrote:
Thanks everyone!