堆栈级别太深,比read_attribute更好?

时间:2011-03-02 04:25:45

标签: ruby-on-rails

我正在为一些模型编写一个具有虚拟属性的模块。现在,我知道为什么我得到一个堆栈太深的错误,并且我可以使用read_attribute。

但是,我真的不喜欢在getter / setter中使用read_attribute方法。我认为它使代码更难以理解。还有另一种更漂亮的方法吗?

1 个答案:

答案 0 :(得分:7)

如果您正在寻找更干净的代码,可以使用self[:attr]代替read/write_attribute(:attr)

def bar
  self[:bar].reverse
end

def bar=(new_bar)
  self[:bar] = new_bar.upcase
end