ActiveRecord对象属性名称与方法名称相同

时间:2012-04-02 11:04:46

标签: ruby-on-rails

我正在尝试在ActiveRecord对象上调用一个方法,其中存在同名属性。这会导致SystemStackError: stack level too deep错误。

如何从方法中访问对象属性以进行修改?

def first_name

 return self.first_name.upper

end

1 个答案:

答案 0 :(得分:25)

如果这是Active Record模型,您可以使用read_attribute方法

def first_name
  read_attribute(:first_name).upper
end