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 に答える