0

只是想知道在 Rails 中执行此类操作的最佳方法是什么:

我有 3 张桌子 -> Events (:id, :name, :category_id, :group_id), Category (:id, :name),Group (:id, :name)

我需要做一个类似于 -> 的查询SELECT * FROM Events WHERE (category_id = x OR category_id = y ...) AND (group_id = a OR group_id = b ...)

基本上是亚马逊或 ebay 上的过滤器工作方式。有任何想法吗?

4

2 回答 2

3

如果我理解正确,您正在搜索类别列表或组列表中的事件。

我会这样做:Event.where('category_id IN(?) AND group_id IN(?)', [1, 2, 3], [4, 5, 6])

于 2013-10-10T14:28:09.727 回答
1

弄清楚了。哇,这太容易了,我 <3 轨!

@events = Event.all
if params.has_key?("category_id")
  @events = @events.where("category_id IN(?)", params["category_id"])
end

您可以为参数传递多个值:/events?category_id[]=1&category_id[]=2

于 2013-10-10T14:58:41.563 回答