0
ネストされた検索を実行していますが、常に正しい情報を返しますが、各エントリの3つのコピーを返します!Railsデータベースネスト検索混乱
ユーザー名、名、趣味、または趣味に基づいてユーザーを検索したいと考えています。すべてのユーザーは、ゼロ、1つ、または多くの趣味を持っています。
これが私のクエリです:
def self.search(search)
query = "%#{search}%"
if search
joins(:hobbies)
.where("user_name like ? or first_name like ? or hobbies.name like ? or hobbies.type like ?", query, query, query, query)
else
self.all
end
end
私は趣味の名前や趣味の種類で検索する場合は、私が正しい応答を取得します。
私はユーザー名またはファーストネームで検索すると、同じエントリの3つのクローンを取得します!!それはなぜそれをするのですか?
'join 'の代わりに' includes'を使用したときに得られる結果は? – dp7
それはうまくいった。しかしどうして? – ineedahero
'includes'はLeft Out Joinを実行します。したがって、一致する条件ごとに1つの行のみが結果として返されます。私は答えとしてそれを拡張しました。 – dp7