私は3つのモデルを持っています:
- ユーザー
- ファイル
- ダウンロード
User
has_many Files
, File
belongs_toUser
File
has_many Downloads
, Download
belongs_toUser
allを反復処理せずにすべての a を取得してから、各ファイルに関連付けられている を取得する方法はありUser
ますか? (これにより、多くのクエリが生成されます)Downloads
Files
Downloads
編集
をロードする方法を見つけましたUser
, it's Files
andDownloads
わずか3クエリで
user = User.includes(:uploads => [:downloads]).find(1)
User
しかし、既にオブジェクトを持っている場合はどうなるでしょうか?
また、ユーザーのアップロードをロードせずに、ユーザーのダウンロードをロードしたい場合はどうすればよいでしょうか? (結合を使用)
編集
Download.joins(:upload => :user).where(:users => { :id => user.id })
users テーブルの主キーを直接参照してこれを行う方法はありますか?