Rails で次のようなクエリを実行する必要があります。
select users.* from users inner join posts on users.id = posts.user_id where posts.title like '%xxx%' or posts.title like '%yyy%' or posts.title like '%zzz%'
User と Post は私のモデルです。私はこのようなことをしました:
title_array = ["xxx", "yyy", "zzz"]
users = User.all
users = users.joins(:posts).where(posts: { title: title_array })
しかし、これは私に次のようなSQLクエリを与えます:
select users.* from users inner join posts on users.id = posts.user_id where posts.title IN ('%xxx%', '%yyy%', '%zzz%')
また、配列に posts.title の値があります。そのため、3 つの OR 値の例を示しましたが、リクエストごとに異なる場合があります。
これを解決するにはレールの方法が必要です。誰かがこれを理解するのを手伝ってくれますか?