0

我在 Rails 4 上,我正在制作一个葡萄酒评论应用程序,我为每种葡萄酒都有一个页面。在葡萄酒页面 (show.html.erb) 上,我列出了对该葡萄酒的所有评论。我正在尝试制作一个简单的方法来显示评论中给出的评分,并且我正在尝试在我的评论帮助文件中执行此操作

module ReviewsHelper
  def display_rating
    if self.rating == 1
        "<div class='btn btn-success'>:)</div>"
    elsif self.rating == 2
        "<div class='btn btn-warning'>:|</div>"
    else 
        "<div class='btn btn-danger'>:(</div>"
    end
  end   
end

undefined method 'display_rating' for #<Review:0x007fc89bae6148>出于某种原因,当我尝试加载我的葡萄酒页面时出现异常。我尝试将方法移动到 WineHelper.rb 文件,但我得到了同样的结果。我错过了什么?谢谢。

4

1 回答 1

2

看来您正在使用视图助手来渲染 display_rating. 这里的使用self不准确。您必须实现该辅助方法,例如:

def display_rating(obj)
  if obj.rating == 1
    "<div class='btn btn-success'>:)</div>"
  elsif obj.rating == 2
    "<div class='btn btn-warning'>:|</div>"
  else 
    "<div class='btn btn-danger'>:(</div>"
  end
end 

然后调用该方法:

display_rating(@obj)
于 2013-09-18T03:47:57.413 回答