0

私は2つのモデルを持っています:グループと私のレールアプリのユーザー。外部キーの配列に一致するオブジェクトをフェッチする方法は?

グループには多数のユーザーがいます。

私のアプリでは、ユーザーIDの配列を使用して、グループが存在するかどうかを確認したいと思います。

私はこの方法Group.joins(:users).find_by('users.id' => [1,2,3])

を使用して試してみましたが、これは個々のユーザーIDが含まれているすべてのグループのオブジェクトを取得します。

私が達成したいのは、正確にuser_idsの配列に一致するグループオブジェクトを取得することです。

助けてください!あなたはGroupコレクション(つまりActiveRecordは::関係)の上にfindを使用すると、このように、各Groupusers.ids対の配列を比較することができ

答えて

0

:また

Group.find { |group| group.users.ids == [1,2,3] } 

、私はGroupにそのロジックを動かす推薦しますモデル:このような

class Group < ApplicationRecord 
    has_many :users 

    def self.with_users(ids) 
    find { | group| group.users.ids == [1,2,3] } 
    end 
end 

し、それを使用します。

Group.with_users([1,2,3]) 
関連する問題