我有一个 Restaurant 和 Category 类,它们都具有 has_and_belong_to_many 关系。通过这个关联,我得到了一个返回数组的 restaurant.category_ids 方法。
我想选择属于指定类别的餐厅(可以是多个)。如何构建此查询?
到目前为止,我有:
@restaurants = Restaurant.joins(:categories).where('categories.id' => params[:category_ids])
但这会返回重复项以及仅适合其中一个类别的餐厅。
例如,搜索美国、廉价和快餐店,我会为 @restaurants 提供 [“Mcdonald's”、“McDonald's”、“McDonald's”、“Burger King”]。
我也试过:
@restaurants = Restaurant.where(:category_ids => params[:category_ids])
但是 category_ids 不是数据库字段,这不起作用。
注意:params[:category_ids] 是一个 id 数组。
谢谢你的帮助!