用OR编写不同对象中的多个参数

时间:2013-10-10 14:23:27

标签: ruby-on-rails ruby ruby-on-rails-3

只是想知道在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的方式。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

想出来。哇,这太简单了,我< 3 rails!

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

你可以为params传递多个值:/ events?category_id [] = 1& category_id [] = 2