【发布时间】:2016-04-06 17:08:27
【问题描述】:
我可以显示商店内的商品及其评论。如何获得评论最多的顶级商品?我的评论在另一个数据库表中,而不是 shop 和 item。
控制器
@shop = Shop.find(params[:id])
@item = Item.where(:shop_name => @shop.name)
查看
<% @item.each do |u| %>
<%= u.reviews.average('rating') %>
<%= u.reviews.count %>
<% end %>
有没有一种简单的方法可以让我根据评论最多的最高评分来订购?或者也许最好将最高评分和大多数评论分开,让用户点击链接进行过滤?
谢谢
编辑:
所以我有一个shop、item、review 表。
在我的 items 模型中
has_many :reviews, as: :reviewable
has_many :shops
在我的reviews model和shops model中是
belongs_to :user
在我的评论表中,它设置为当用户评论一个项目时,它会向数据库添加一条记录,我使用与该项目关联的所有记录中的 average 并将其显示在商店中。
【问题讨论】:
-
您能否分享有关您的表和模型的更多详细信息,可能一个好的 SQL 查询会有所帮助。
-
@EdgarsJekabsons 我添加了一些细节,是不是更有意义一点?
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 rating