私はUser
モデル、has_many
スキルを持っています。私は、選択されたすべてのスキルにユーザーが一致するようにする必要があります。例:ransack match all association
User A: Ruby, HTML, JavaScript.
User B: Ruby
User C: Ruby, C++
スキルの名前またはIDのリストを使用して検索するとき。私はこのリストのすべての値を持つユーザーを取得する必要があります。したがって、Ruby & Javascript
を使用して検索すると、User A
を取得する必要があります。
ransack gemskills_id_in
を使用した場合、すべてのユーザーに返信されます。Ruby
スキルがあります。クエリは次のようになります。
SELECT \"users\".* FROM \"users\" LEFT OUTER JOIN \"user_skills\" ON \"user_skills\".\"user_id\" = \"users\".\"id\" LEFT OUTER JOIN \"skills\" ON \"skills\".\"id\" = \"user_skills\".\"skill_id\" WHERE \"skills\".\"id\" IN (1, 3)
ransackでは許可されていない場合です。あなたは助けることができますどのようにActiveRecordで&を実行すると、データベースレベルで実行?
意見:ransack paramsを使用して実装できません。すべての関連付けに一致するネイティブクエリが分かっている場合は教えてください。