0

レールでこのようなことをするための最良の方法は何だろうと思っているだけです:

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 ...)

基本的には、Amazon や 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

また、次のように params に複数の値を渡すことができます: /events?category_id[]=1&category_id[]=2

于 2013-10-10T14:58:41.563 に答える