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