人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Rails3のActiveRecordでLEFT OUTER JOINしたいです。実装方法を教えてください。

【モデル】

1.group(グループテーブル)
id
name

2.user_group_cmb(ユーザーグループ関連テーブル)
id
user_id
group_id

【実行したいSQL】

select * from groups as g left outer join user_group_cmbs as cmb on g.id = cmb.group_id where cmb.user_id = 1

【質問したいこと】
1.上記SQLを実行するための実装。(関連の設定(has_many?)が必要ですよね)

2.1つのモデルのSELECTの場合、@group = Group.find と、@groupに格納していましたが、複数テーブルの場合、別途DTOみたいのを作る必要がありますか?(JavaならDTO作ってましたが。。)

●質問者: nemutaiyo
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● techmedia-think
●100ポイント

1については、多対多の関連テーブルとして実現できるかと思います。以下のサイトが参考になると思います。

http://d.hatena.ne.jp/shunsuk/20090323/1237806859

2についてですが、RailsであまりDTOを作るケースは少ないかと思います。複数テーブルのデータを取得する場合、それらのテーブルに関連があるのであれば、取得したActiveRecord経由で参照できるかと思います。

(↑のサイトの@entry.tagsとやってるように。)

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ