我正在學習Ruby on Rails,並且遇到了我一直無法解決的活動記錄問題。我正試圖將四個表內聯在一起並顯示它們的數據。Rails,活動記錄。將四個表加在一起
我已通過運行以下SQL樣式查詢確認我的數據庫模式是正確的。它返回我期望的數據。
select * from sailings
INNER JOIN travelling_parties on sailings.id = travelling_parties.sailing_id
INNER JOIN party_registers on travelling_parties.id = party_registers.travelling_party_id
inner JOIN users on party_registers.user_id = users.id
where users.id = 8
在閱讀guides.rubyonrails.org上的精彩文檔後,我仍然無法找到解決方案。下面的查詢是我在控制器中提出的,但它似乎並沒有返回我所需要的。
@sailing = Sailing.joins(:travelling_parties => [{:party_registers => :user}])
我會很感激任何能引導我走向正確方向的人。
謝謝
編輯1:這是我的模型。我正在嘗試檢查user.id = current_user.id並基於此顯示數據。
class Sailing
has_many :travelling_parties
end
class TravelingParty
has_many :party_registers
has_many :users, through: :party_registers
end
class PartyRegister
belongs_to :user
belongs_to :travelling_party
end
class User
has_many :party_registers
has_many :travelling_parties, through: :party_registers
end
編輯2:下面的查詢給了我預期的結果
@sailing = Sailing.joins(:travelling_parties => {:party_registers =>:用戶})。其中( 「users.id」 => current_user.id)
感謝您的回覆。
u能張貼年車型?還有什麼想從用戶表返回? – 7urkm3n