2011-02-23 43 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