【发布时间】:2019-11-21 22:24:32
【问题描述】:
我有下一个控制器动作:
def index
query = params[:query].presence || "*"
args = {}
args[:name] = params[:name] if params[:name].present?
args[:category_name] = params[:category_name] if params[:category_name].present?
@items = Item.search query, where: args, aggs: { category_name: {} }
end
我需要按名称和类别过滤(完成)
但是,我还需要按两个不同的类别进行过滤,例如:
category: "School", items: Notebook, Pencil, Pen, Board, etc
category: "Fruit", items: Banana, Pear, Grape, Apple, etc
category: "Vegetable", items: Broccoli, Carrots, Corn, Potatoes, etc
然后,用户选择“学校”和“水果”,结果应该是一个列表:
笔记本、铅笔、钢笔、白板等
香蕉、梨、葡萄、苹果等
目前我有几个不同的过滤器,我只是把“类别”来显示问题,我设法按所有过滤器过滤结果,但每个过滤器只过滤一次。
如何处理过滤器以允许对同一个过滤器进行两次选择?
谢谢!
版本:
Rails 6.0.1
Ruby 2.6.5
Searchkick 4.1.1
【问题讨论】:
标签: ruby-on-rails ruby searchkick