<%= @referral1 = User.joins(:reviews).select(' users.name,
count(reviews.id) as count')
.group('users.name')
.group_by { |r| r["count"] }
.sort_by { |k, v| -k }
.first(4)
%>
这是我正在使用并从数据库中获取数据的代码。结果是
[[1560, [#<User id: nil, name: "Carolanne Maggio">]], [15, [#<User id: nil, name: "test9">]], [8, [#<User id: nil, name: "josh">]], [4, [#<User id: nil, name: "test">]]]
我希望获得评论数量最多的顶级用户。 该查询给了我,但现在我想以适当的方式显示此数据。 知道我该怎么做吗?
答案 0 :(得分:0)
您可以迭代@referral1
对象并从那里使用数据,也许像这样
<% @referral1 = User.joins(:reviews).select(' users.name,
count(reviews.id) as count')
.group('users.name')
.group_by { |r| r["count"] }
.sort_by { |k, v| -k }
.first(4)
%>
<table>
<th>User</th><th>Reviews</th>
<tbody>
<% @referral1.each do |referral| %>
<tr><td><%= referral[0] %></td><td><%= referral[1].name %></td></tr>
<% end %>
</tbody>
</table>
希望这会有所帮助。
顺便说一句,您的查询似乎效率很低,如果可以显示模型及其关系,我可以帮助简化它。