数组样式数据

时间:2018-06-22 04:33:35

标签: css ruby-on-rails

<%= @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">]]]

我希望获得评论数量最多的顶级用户。 该查询给了我,但现在我想以适当的方式显示此数据。 知道我该怎么做吗?

1 个答案:

答案 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>

希望这会有所帮助。

顺便说一句,您的查询似乎效率很低,如果可以显示模型及其关系,我可以帮助简化它。