Rails 活动记录关联查询
Rails Active Record Association Query
我有以下模型:
user.rb
has_many: groups
group.rb
has_many: channels
我想要一个查询 returns 所有频道的 "name" 字段的列表属于用户的所有组。
我下面的内容不起作用,欢迎任何指导。
Group.all.where("user_id = ?", 1).joins(:channels)
假设:
- 频道
belongs_to
组
- 你有一个
@user
我相信你应该可以做到:
Channel.where(group: @user.groups).pluck(:name)
所有 Channel
的 name
属性的 return 应该 array
(我假设这就是你所说的 list
的意思)属于 @user
.
的所有 Group
在您的情况下(在您对原始 post 的评论中指出,这实际上应该是一个编辑),您应该这样做:
<% @user_groups.each do |group| %>
<tr>
<td>
<%= group.name %>
</td>
<td>
<%= group.channels.pluck(:name) %>
</td>
</tr>
<% end %>
我有以下模型:
user.rb
has_many: groups
group.rb
has_many: channels
我想要一个查询 returns 所有频道的 "name" 字段的列表属于用户的所有组。
我下面的内容不起作用,欢迎任何指导。
Group.all.where("user_id = ?", 1).joins(:channels)
假设:
- 频道
belongs_to
组 - 你有一个
@user
我相信你应该可以做到:
Channel.where(group: @user.groups).pluck(:name)
所有 Channel
的 name
属性的 return 应该 array
(我假设这就是你所说的 list
的意思)属于 @user
.
Group
在您的情况下(在您对原始 post 的评论中指出,这实际上应该是一个编辑),您应该这样做:
<% @user_groups.each do |group| %>
<tr>
<td>
<%= group.name %>
</td>
<td>
<%= group.channels.pluck(:name) %>
</td>
</tr>
<% end %>