好?在另外一个测试中,想学习搜索,但我说的是WTF,请看看图像:
重复一遍,我知道,我把Product.all放在index.html.erb中:
<%= search_form_for @q do |f| %>
<%= f.label :name_cont, "Name" %>
<br />
<%= f.search_field :name_cont %>
<br />
<%= f.label :hd, "Brand" %>
<br />
<%= f.collection_check_boxes :brand, Product.all, :brand, :brand %>
<br />
<%= f.label :hd, "HD" %>
<br />
<%= f.collection_check_boxes :hd, Product.all, :hd, :hd %>
(...)
<%= f.submit "Search" %>
<% end %>
在控制器中就是这样:
def index
@q = Product.ransack(params[:q])
@products = @q.result
end
uniq_value不起作用,是错误。我希望点击搜索显示只有一个值...例如,有2 500 HD的笔记本注册,想要显示一个价值500gb的复选框,点击,显示两个笔记本,明白吗?谢谢!
答案 0 :(得分:1)
sudo mysql -u root -p
和
<%= f.collection_check_boxes :brand, Product.select(:brand).distinct, :brand, :brand %>
这会产生类似<%= f.collection_check_boxes :hd, Product.select(:hd).distinct, :hd, :hd %>
的SQL查询。
如果可能的话,更简洁的方法是规范化您的数据库并创建一个名为SELECT DISTINCT brand FROM products
的模型,并将产品与品牌链接,即产品属于某个品牌。