2017-02-28 8 views
1

私は製品のショーページで最も高い評価を持つコメントを表示しようとしていますが、コメントの代わりに#が表示されています。なぜどんなアイデア?レールで最も高い評価のコメント

#comment model 
class Comment < ApplicationRecord 
belongs_to :user 
belongs_to :product 

scope :rating_desc, -> { order(rating: :desc) } 
scope :rating_asc, -> { order(rating: :asc) } 
end 

#product model 
class Product < ApplicationRecord 
    has_many :orders 
    has_many :comments 

    def highest_rating_comment 
    comments.rating_desc.first 
    end 
end 

#product show page 
<%= @product.highest_rating_comment %> 

答えて

0

inspectメソッドの結果を示します。評価フィールドの値を出力する必要があります。製品の表示ページに変更を加える:

#product show page 
<%= @product.highest_rating_comment.try(:rating) %> 
0

あなたの出力は"#<Comment:0x007fb9ea9561d0>"のようになります場合は、何を見ている@product.highest_rating_commentto_sを呼び出した結果です。基本的には、オブジェクトの場所のテキスト表現をメモリに表示しています。

代わりにコメントの内容が必要です。あなたのスキーマを提供していないので、私はそのフィールドが何と呼ばれているか言うことはできません - おそらく@product.highest_rating_comment.comment

+0

私は@ product.highest_rating_comment.bodyを試してみましたが、コメントの本文が表示されます。大いに感謝する! – BoB

+0

素晴らしい、嬉しい助け!私の答えを受け入れるのは気になりますか?ありがとう! – Brian

+0

このソリューションはローカルで動作しますが、Herokuではエラーが発生します。私はこの他のソリューションを試して、それはローカルとHerokuで完璧に動作します: <%= @ product.highest_rating_comment.try(:rating)%> ありがとうございました! – BoB

関連する問題