Запрос через несколько моделей в Rails 3 - PullRequest
1 голос
/ 23 февраля 2011

У меня есть несколько моделей:

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 Ответ

1 голос
/ 23 февраля 2011

Вы пробовали:

Asset.joins(:workspace_assets => {:workspace => :workspace_users}.
 where("assets.id = ? & workspace_users.user_id = ?", assetID, userID)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...