【发布时间】:2018-04-08 11:40:06
【问题描述】:
我正在尝试在我的搜索结果页面中加入搜索过滤器。在用户搜索并在 search.html.erb 上显示结果后,我希望他们使用过滤器。过滤器将来自搜索结果本身。
换句话说,我想复制汽车大师所做的事情。您使用品牌、型号、价格进行搜索,然后过滤器会根据搜索车辆装饰、传输等为您提供分面搜索选项。
我尝试了单个过滤器链接,例如:
<%= addfilters "transmission", "Automatic" %>
并定义像
这样的辅助方法def addfilters(column, title)
link_to title, params.permit(:NewUsed, :category, :subcategory, :minprice, :maxprice, :location, :radius).merge({:"#{column}" => "Automatic"})
end
但是我该怎么做:
我不想使用外部依赖项或诸如 ransack 或 filterrific 之类的 gem,我想从头开始学习分面搜索。
如果需要,我的搜索表单代码是:
<div id="Make" class="tabcontent1">
<section class="formclass">
<!-- f.select :transmission, ['Automanual','Automatic','Automatic 4 Speed','Automatic 5 Speed','Automatic 6 Speed','CVT','Manual'] -->
<h3 style = "color:#F00000; text-align: center;"><strong><%= @carcount %> CARS LISTED!</strong></h3>
<hr>
<h3 style = "color:#7C064D;"><span class="glyphicon glyphicon-search"></span> <strong>SEARCH CARS FOR SALE BY MAKE</strong></h3>
<%= form_tag search_listings_path, method: :get, class: 'navbar-form navbar-center' do |f| %>
<div class= "col-xs-12 col-sm-12 col-lg-12 col-md-12">
<%= select_tag :NewUsed, "<option>New</option><option>Used</option>".html_safe, style: "width: 100%; margin: 1% 0;" %>
</div>
<div class= "col-xs-6 col-sm-6 col-lg-6 col-md-6">
<%= select_tag :category, include_blank: true, style: "width: 100%; margin: 1% 0;" %>
</div>
<div class= "col-xs-6 col-sm-6 col-lg-6 col-md-6">
<%= select_tag :subcategory, include_blank: true, style: "width: 100%; margin: 1% 0;" %>
</div>
<!-- <div class= "col-xs-12 col-sm-12 col-lg-12 col-md-12"> -->
<div class= "col-xs-6 col-sm-6 col-lg-6 col-md-6">
<%= text_field_tag :minprice, nil, placeholder: 'Min Price', style: "width: 100%; margin: 1% 0;" %>
</div>
<div class= "col-xs-6 col-sm-6 col-lg-6 col-md-6">
<%= text_field_tag :maxprice, nil, placeholder: 'Max Price', style: "width: 100%; margin: 1% 0;" %>
</div>
<!-- </div> -->
<div class= "col-xs-6 col-sm-6 col-lg-6 col-md-6">
<%= text_field_tag :location, nil, placeholder: 'Near', style: "width: 100%; margin: 1% 0;" %>
</div>
<div class= "col-xs-6 col-sm-6 col-lg-6 col-md-6">
<%= text_field_tag :radius, nil, placeholder: 'Radius', style: "width: 100%; margin: 1% 0;" %>
</div>
<div class= "col-xs-12 col-sm-12 col-lg-12 col-md-12">
<%= submit_tag 'Search', class: 'btn btn-danger', style: "width: 100%;" %>
</div>
<% end %>
</section>
</div>
【问题讨论】:
标签: jquery ruby-on-rails ruby search filter