rails中评分最高的评论

时间:2017-02-28 20:17:44

标签: ruby-on-rails ruby rails-models

我试图在产品展示页面中显示评分最高的评论,但它会显示#而不是评论。有什么想法吗?

#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 %>

2 个答案:

答案 0 :(得分:0)

如果您的输出看起来像"#<Comment:0x007fb9ea9561d0>",那么您所看到的就是在to_s上调用@product.highest_rating_comment的结果。基本上你是在内存中看到对象位置的文本表示。

您可能需要的是评论的内容。既然你没有提供你的架构,我就不能说那个字段叫什么 - 也许是@product.highest_rating_comment.comment

答案 1 :(得分:0)

它显示了inspect方法的结果。您需要输出评级字段的值。将更改添加到产品展示页面:

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