簡體   English   中英

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

我如何go做反向? 如果我想顯示用戶的會議,我最初想嘗試@user.meetings ,但那沒有用。 然后我嘗試了@user.panel.meetings ,但出現錯誤。

所以我最終弄清楚了萬一有人遇到同樣的問題......

在我的用戶 model 中,我進行了以下查詢:

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 協會。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM