Attr_reader для атрибута модели Active Record
Article.rb < ActiveRecord::Base
...
attr_reader :title
def title
self.title.gsub(/"/," ")
end
end
Я пытаюсь переписать способ отображения заголовка каждой статьи, потому что, если я не выгляжу, это выглядит ужасно, но я продолжаю получать сообщение об ошибке:
SystemStackError in ArticlesController#index or StackLevelTooDeep
Я не уверен, как решить эту проблему. Если я изменю метод на что-то другое, например, ntitle, он будет работать. ЗАЧЕМ?!
1 ответ
Решение
Когда ты звонишь self.title
внутри def title
он вызывает сам себя, поэтому вы получаете бесконечную рекурсию, и это вызывает ошибку StackLevelTooDeep
,
Это должно работать:
class Article < ActiveRecord::Base
...
def title
read_attribute(:title).to_s.gsub(?", " ")
end
end