我正在使用Rails4。我想搜索所有属于metal_type的产品:Gold.metal_type在metal_spec表中。产品属金属(属于metal_spec),金属类型为布尔值,如果其值为1,则为金。
产品.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 %>
它不起作用,请帮助。提前致谢
该代码应该做到这一点:
# 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(名称,值,已选中=否,选项= {})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句