通过Rails 3中的几个模型进行查询

时间:2011-02-23 16:25:18

标签: ruby-on-rails activerecord

我有几个型号:

Workspace
User
Asset
WorkspaceUser
WorkspaceAsset

Workspace通过两个连接表(WorkspaceUser,WorkspaceAsset)拥有许多用户和资产

我正在尝试找到最有效和最优雅的方法来确定用户和资产之间是否存在路径,即用户 - > WorkspaceUser - >工作区 - > WorkspaceAsset - >资产

这是我到目前为止所做的:

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

希望有一个更好的解决方案,也许是一个可以归还相关资产的解决方案。

1 个答案:

答案 0 :(得分:1)

你试过了吗?

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