私はユーザー、メンバーシップ、グループモデルを持っています。ユーザーには多数のメンバーシップがあり、メンバーシップを通じてグループ化されます。グループには多数のメンバーシップがあり、ユーザーはメンバーシップを使用しています。メンバーシップは両方に属します。アクティブレコードクエリモデル 'select'と 'where'を使用した配列結果
ユーザーがユーザーのインデックスビューにアクセスすると、ユーザーが所属するグループに所属するすべてのユーザーを表示する必要があります。次のコードを作成しましたが、これは機能しません。私はクエリを動作させるように見えることはできません。ピーズヘルプ!
コンソールで試験したとき、私は、理由を理解していないユーザーモデル
def relevant_members
group_ids = self.group_ids
user_ids = Membership.select("user_id").where("group_id IN (#{group_ids.join(", ")})")
User.find(user_ids)
end
、user_idsのUsersコントローラ
class UsersController < ApplicationController
def index
@users = current_user.relevant_members
end
end
コード内のコードは、IDの配列ではありませんしかし、次の配列:
[#<Membership user_id: 2>, #<Membership user_id: 2>, #<Membership user_id: 3>, #<Membership user_id: 3>, #<Membership user_id: 3>, #<Membership user_id: 2>]
ユーザーIDの配列を返すより良い方法は?関連するすべてのグループメンバーを見つけますか?