2011-08-03 7 views
0

私はUserクラスとGroupUserクラスを持っています。私はユーザーの名前で検索しようとしています。私はジョイントで読んだことに従ってみましたが、何か間違っています。また、私はクエリの私の部分を等号の代わりにlikeに変更する必要がありますRails 3:結合クエリを理解しようとしています

これは私が最初に構築したクエリです。

@users = GroupUser.joins(:users).where(:group_id => params[:group_id]).where(:users => {:name => params[:q]}) 

答えて

0

これを試してみてください:私はむしろGroupUsersの方向から行くでしょう

@users = User.where("name ilike ? and id in (select distinct user_id from groups_users where group_id = ?)", "%#{params[:q]}%", params[:group_id]) 
+0

ユーザーが複数のグループの一部であることができるよう。 – Jhorra

+0

元のクエリから、指定されたグループ(params [:group_id])以上のクエリにあなたが所属しているユーザーが必要であると仮定します。 GoupUserから移動すると、UserではなくGroupUserオブジェクトの配列が取得されます。 –

+0

私はgroupuser側から何をしても動作させることができなかったので、ユーザー側からやらなければならず、すぐに機能しました。私の団体や何かで何か変だ。 – Jhorra

関連する問題