我试图在产品展示页面中显示评分最高的评论,但它会显示#而不是评论。有什么想法吗?
#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 :(得分: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) %>