模型属性调用错误Rails 2.3.8

问题描述

| 我已经有一个现有的Rails项目(Rails 2.3.8),并且具有以下具有以下属性的Model:
class School < ActiveRecord::Base

  def name
    read_attribute(:name).nil? ? \'default name\' : self.name
  end

end
我猜想原始作者试图在此代码中返回名称认值
default name
。但是问题是我的代码尝试访问name属性
school = School.find(1)

school.name 
而我得到这个错误
stack level too deep
我猜是因为它递归地调用name方法。有人可以指导我解决此问题的方法。由于有很多作者,因此我不确定他们在哪里使用了上述方法。而且系统也没有任何测试服。有人可以帮帮我吗?     

解决方法

        你可以做
def name
  read_attribute(:name).nil? ? \'default name\' : read_attribute(:name)
end
或更简洁
def name
  read_attribute(:name) || \'default name\'
end