関連テーブルでカテゴリみたいな多対多の関連を実装したとき、一番安易なのはとのかくJOINで全部連結しちゃう方法だけど、これだと重そうだ。なるべく連結の規模が小さくて拡張しやすそうなSQLを考えてる。SQL素人の癖に。 いろいろ試してみたけどこんな感じで落ち着いた。 もっと効率よい方法、教えてください # has_many :through な関連 genres と conditions による検索サンプル # 「いずれかのジャンル(Genre)」かつ「すべての条件(Condition)を満たす」 # conditions => { # :genre_ids => [1,2,3] # GenreのidでOR検索 # :condition_ids => [1,2,3] # ConditionのidでAND検索 # } def Shop.search(conditions = {}) param