「%mike%」のような単純なテキスト文字列 search_for を指定すると、「user.email LIKE search_for」または「user_profile.name LIKE search_for」のいずれかであるすべてのユーザーを検索したいと思います。
ユーザー has_one UserProfile
ユーザーには :email フィールドがあります
UserProfile には :name フィールドがあります
user.user_profile が存在しない可能性があります (たとえば、ユーザーがまだ名前を持っていない可能性があります)。
最初に LEFT JOIN が必要であると仮定します (つまり、存在する場合は user_profile に参加しているすべてのユーザーがいます)。次に、.where 句の一部として user.email と user_profile.name を指定できる必要がありますが、できません。構文をかなりクラックして機能させます。
どんな助けでも大歓迎です。