Rails活动记录关联查询

时间:2019-01-30 20:35:20

标签: ruby-on-rails rails-activerecord

我的模型如下:

user.rb

has_many: groups

group.rb

has_many: channels

我想要一个查询,该查询返回所有属于用户的所有组的所有通道的“名称”字段的列表。

我下面的内容不起作用,任何指导都值得赞赏。

Group.all.where("user_id = ?", 1).joins(:channels)

1 个答案:

答案 0 :(得分:2)

假设:

  1. belongs_to频道组
  2. 您有一个@user

我相信您应该可以:

Channel.where(group: @user.groups).pluck(:name)

应该返回属于所有{{1}的所有array的{​​{1}}属性的list属性的name(我假设您是指Channel的意思) }属于Group

对于您的情况(在您对原始帖子的评论中指出,该帖子实际上应该是编辑内容),您应该执行以下操作:

@user