我正在使用Rails4。我想搜索所有metal_type的产品:Gold.metal_type在metal_spec表中。 产品belongs_to metal_spec,metal_type是boolean,如果它的1则是它的Gold。
Product.rb
def self.search(query)
self.joins(:metal_spec).to_a.where(metal_type: "#{query}")
end
在产品控制器
中@products = Product.search(params[:search]).to_a
在模板中
<%= form_tag(sub_category_products_path(params[:sub_category_id]), :method => "get", id: "search-form") do %>
<%= select_tag "search", "<option>0</option><option>1</option>".html_safe%>
<%= submit_tag "Search", :name => nil %>
<% end %>
它不起作用,请帮忙。 在此先感谢
答案 0 :(得分:1)
这段代码应该这样做:
# product.rb
def self.search(query)
self.joins(:metal_spec).where(metal_spec: { metal_type: query })
end
此外,您的select_tag
:
select_tag "search", options_for_select([0, 1])
如果您想使用radio_button_tag
而不是select_tag
:
radio_button_tag 'search', 0, params[:search] == '0'
radio_button_tag 'search', 1, params[:search] == '1'
此处有关rabio_button_tag
的文档:http://apidock.com/rails/ActionView/Helpers/FormTagHelper/radio_button_tag
radio_button_tag(name,value,checked = false,options = {})