【发布时间】:2018-09-02 16:45:10
【问题描述】:
我有一个连接表,其中列出了 user_id 和 item_id(多对多关系)。
我试图在 erb 页面上显示用户拥有多少项目。
我该怎么做?
我的联接表/模型 UserItem 现在有 11 条记录,所以很明显,如果我这样做 UserItem.count,它会给我 11 条记录。
但是我如何告诉它对于每个 user_id,计算该特定用户有多少 item_id?然后显然我会迭代这个。
编辑:
好的,我发现 UserItem.group(:user_id).distinct.count 给了我 {user_id => # of items per user} 的哈希值。
我如何不仅迭代哈希,而且使它与每个当前 user_id 相关联?
<% @users.each do |user| %>
<li><%= user.username %>
has been to <%= UserItem.group(:user_id).distinct.count %>!</li>
<% end %>
到目前为止,这只是插入哈希,我如何对应每个 user_id 使其与显示的 user.username 对齐?
【问题讨论】:
-
UserItem.where(user_id: :id).count我想。 -
这是有道理的,但是返回 0。还有其他想法吗?
-
对于 SQL 问题,请添加表定义、示例数据、所需输出以及您尝试过的内容。
-
我在原始帖子中添加了一个编辑!
标签: sql ruby activerecord sinatra-activerecord