如何查询has_many的反向通过?

How can I query the reverse of has_many through?

我正在尝试显示具有以下关联的用户会议。

class User < ApplicationRecord
    has_many :panels
    has_many :meetings, through: :panels
end
class Meeting < ApplicationRecord
    has_one :panel
    has_many :users, through: :panels
end
class Panel < ApplicationRecord
  belongs_to :Meeting
  belongs_to :panel_head, class_name: "User"
  belongs_to :panel_member_1, class_name: "User"
  belongs_to :panel_member_2, class_name: "User"
end

我可以使用以下代码显示会议的小组成员:

@meeting.panel.panel_head
@meeting.panel.panel_member_1
@meeting.panel.panel_member_2

我该如何做相反的事情?如果我想显示用户的会议,我最初想尝试 @user.meetings 但那没有用。然后我尝试 @user.panel.meetings 但我得到了一个错误。

所以我最终弄清楚了以防有人遇到同样的问题...

在我的用户模型中,我进行了以下查询:

def meetings
    Meeting.joins(:panel).where("panels.panel_head_id = ? OR panels.panel_member_1_id = ? OR panels.panel_member_2_id = ?", id, id, id)
 end

我现在可以使用 @user.meetings 并返回一个 ActiveRecord 关联。