Attr_reader for Active Record模型属性

时间:2014-12-09 01:38:36

标签: ruby-on-rails activerecord actiondispatch

Article.rb < ActiveRecord::Base   
... 

attr_reader :title

def title
    self.title.gsub(/"/," ")
end

end

我试图覆盖每个文章标题的显示方式,因为如果我不这样看它看起来很难看,但我会一直收到错误:

SystemStackError in ArticlesController#index or StackLevelTooDeep

我不确定如何解决这个问题。如果我将方法更改为与ntitle不同的方法,它将起作用。为什么?!

1 个答案:

答案 0 :(得分:3)

当你在self.title内调用def title时,它会自行调用,因此会获得无限递归,并导致错误StackLevelTooDeep

这应该有效:

class Article < ActiveRecord::Base
  ...

  def title
    read_attribute(:title).to_s.gsub(?", " ")
  end

end