我正在尝试在我的rails应用程序中进行高级搜索,但我遇到了一些空的参数问题
类产品<的ActiveRecord :: Base的 searchkick
当我填写搜索和大小字段时,每个工作,但如果我留下大小字段空白没有显示在结果...
可能我正在做一些愚蠢的事情
我使用了一堆IF:
def index
if params[:search].present?
if params[:size].present?
@products = Product.search params[:search], where: {size: params[:size]}
else
@products = Product.search params[:search]
end
else
if params[:size].present?
@products = Product.search "*", where: {size: params[:size]}
else
@products = Product.search "*"
end
end
但可能那不是最好的approuch,记住我会搜索至少5个其他领域......
搜索,尺寸,品牌,颜色,Store.state,价格,评级等...
对不起我的英语,我希望你们理解我的问题,并能够帮助我......
答案 0 :(得分:0)
我的蠢事:
<tr>
答案 1 :(得分:0)
找到解决方案
Setting up Facets in Elasticsearch with Searchkick gem in Rails 4.1
query = params[:query].presence || "*"
conditions = {}
conditions[:state] = params[:state] if params[:state].present?
conditions[:city] = params[:city] if params[:city].present?
movies = Movie.search query, where: conditions