has_and_belong_to_many の関係を持つ Restaurant クラスと Category クラスがあります。この関連付けにより、配列を返す restaurant.category_ids メソッドを取得します。
指定したカテゴリ (複数可) に属するレストランを選択したい。このクエリを作成するにはどうすればよいですか?
これまでのところ、私は持っています:
@restaurants = Restaurant.joins(:categories).where('categories.id' => params[:category_ids])
しかし、これは、カテゴリの 1 つだけに適合するレストランだけでなく、重複も返します。
たとえば、アメリカ料理、安い料理、ファースト フードのレストランを検索すると、@restaurants に対して ["Mcdonald's", "McDonald's", McDonald's", "Burger King"] が表示されます。
私も試しました:
@restaurants = Restaurant.where(:category_ids => params[:category_ids])
しかし、category_ids はデータベース フィールドではないため、これは機能しません。
注: params[:category_ids] は ID の配列です。
助けてくれてありがとう!