【问题标题】:Rails Active Record Association QueryRails Active Record 关联查询
【发布时间】:2019-01-30 20:35:20
【问题描述】:

我有以下型号:

用户.rb

has_many: groups

group.rb

has_many: channels

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

我下面的内容不起作用,感谢任何指导。

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

【问题讨论】:

  • 为什么它不起作用?你有什么错误吗?
  • 对不起,我应该更清楚。当我在视图中输入:'code' 我得到组name 字段正确,但通道字段我得到了 Channel 这个词 - 即字段的名称而不是其中的值。谢谢

标签: ruby-on-rails rails-activerecord


【解决方案1】:

假设:

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

我相信你应该可以做到:

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

应该返回属于@user的所有Channels的所有Channels的name属性的array(我假设这就是list的意思)。

在您的情况下(在您对原始帖子的评论中表明确实应该进行编辑),您应该这样做:

<% @user_groups.each do |group| %>
  <tr>
    <td>
      <%= group.name %>
    </td>
    <td>
      <%= group.channels.pluck(:name) %>
    </td>
  </tr>
<% end %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-14
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多