[英]How to make dropdown select search field to work, when using the Ransack gem on Rails?
我在 Ruby on Rails 4.2.2 上使用 Ransack gem。
:name 字段搜索有效,但我无法让下拉选择字段起作用。 当我从下拉菜单中选择一个项目并按“搜索”时,我没有得到任何搜索结果。 这是我在终端上得到的:
Started GET "/companies?utf8=%E2%9C%93&q%5Bname_cont%5D=&..." for ...
Processing by CompaniesController#index as HTML
Parameters: {"utf8"=>"✓", "q"=>{"name_cont"=>"", "category_eq"=>"7", "location_eq"=>""}, "commit"=>"Search"}
Company Load (0.3ms) SELECT "companies".* FROM "companies"
CACHE (0.0ms) SELECT "companies".* FROM "companies"
Company Load (0.1ms) SELECT "companies".* FROM "companies" WHERE "companies"."category" = '7'
Rendered companies/index.html.erb within layouts/application
Completed 200 OK in 217ms
这是我的公司_controller.rb
class CompaniesController < ApplicationController
def index
@search = Company.search(params[:q])
@companies = @search.result
end
end
这是公司的 index.html.erb :
<%= search_form_for @search do |f| %>
<div class="field">
<%= f.label :name_cont, 'Company Name' %>
<%= f.text_field :name_cont, class: 'form-control' %>
</div>
<div class="field">
<%= f.label :category_eq, 'Category' %>
<%= f.select :category_eq, options_from_collection_for_select(Company.all, "id", "category", @search.category_eq) %>
</div>
<div class="field">
<%= f.label :location_eq, 'Location' %>
<%= f.select :location_eq, options_from_collection_for_select(Company.all, "id", "location", @search.location_eq) %>
</div>
<div>
<%= f.submit "Search" %>
</div>
<% end %>
<% @companies.each do |company| %>
<tr>
<td><%= company.name %></td>
<td><%= company.category %></td>
<td><%= company.location %></td>
</tr>
<% end %>
我不明白为什么 :name 有效,但是 :category 和 :location 在搜索中不显示任何内容?
<%= f.select :category_eq, options_for_select(Company.all, "id", "category", @search.category_eq) %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.