2011-02-23 37 views
1

我有幾個型號:查詢通過幾種模式中的Rails 3

Workspace 
User 
Asset 
WorkspaceUser 
WorkspaceAsset 

工作區擁有衆多用戶和資產,通過兩個連接

我試圖找到表(WorkspaceUser,WorkspaceAsset)最有效和最優雅的方式,以找出是否存在用戶和資產,即用戶之間的路徑 - > WorkspaceUser - >工作空間 - > WorkspaceAsset - >資產

這是我到目前爲止有:

Workspace.joins(:workspace_assets, :workspace_users).where("workspace_assets.asset_id = ? & workspace_users.user_id = ?", assetID, userID) 

希望有更好的解決方案,並且可能會返回有問題的資產。

回答

1

您是否嘗試過:

Asset.joins(:workspace_assets => {:workspace => :workspace_users}. 
where("assets.id = ? & workspace_users.user_id = ?", assetID, userID) 
+0

我想完蛋了!謝謝! – Kelend 2011-02-23 18:06:54

+0

您可以通過將其作爲資產模型中的範圍來進一步。 – DGM 2011-02-23 19:12:44