私は二重の内部結合が必要な奇妙な状況があります。私は必要な質問を試みました、私はちょうどレールをする方法を知らない。ActiveRecordのhabtmとの二重結合
データ
- アカウント(にhas_many:サイト)
- サイト(HABTM:ユーザー、belongs_toの:アカウント)
- ユーザー(HABTM:サイト)
がいることを無視します彼らはhabtmまたは何でも、私はそれらをhabtmまたはhas_many作ることができます:スルー。
私はその後、もちろん私は
@user.accounts < @some_other_account
を行い、その後、user.sitesには、@持つことができるはずです
@user.accounts
または
@account.users
を行うことができるようにしたいです@some_other_accountのすべてのサイト。
私はhabtmとhas_many:を通していますが、私が望むことをするためにそれを得ることはできません。
基本的に私は(。phpMyAdminのからコピーテストおよび作品)は、このようなクエリで終わる必要があります。
SELECT accounts.*
FROM accounts
INNER JOIN sites ON sites.account_id = accounts.id
INNER JOIN user_sites ON sites.id = user_sites.site_id
WHERE user_sites.user_id = 2
は、私がこれを行うことができますか?この二重結合を持つことも良い考えですか?私は、ユーザーがアカウントとの関連付けを開始してから、@ user.sitesを取得することを心配している方がうまくいくと思っていますが、それがそのまま維持されていると他の多くのものの方が効果的です(ユーザー< - サイト)。
ありがとう!スクリーンキャストが大好きです。 –