如何使用 Ransack 使用复选框构建高级搜索?

How build a advanced search with checkbox using Ransack?

我如何构建高级搜索这个图像:

我有我的控制器,还很基础:

def index
    @q = Product.ransack(params[:q])
    @products = @q.result(distinct: true)
  end

并发表我的看法:

<%= search_form_for @q do |f| %>
  <%= f.label :name_cont, "Name" %>
  <br />
  <%= f.search_field :name_cont %>
  <br />
  <%= f.label :brand, "Brand" %>
  <br />
  <%= f.collection_check_boxes :brand, Product.all, :id, :brand %>
  <br />
  <%= f.label :hd, "HD" %>
  <br />
  <%= f.collection_check_boxes :hd, Product.all, :id, :hd %>
  <br />
  <%= f.label :ram, "RAM" %>
  <br />
  <%= f.collection_check_boxes :ram, Product.all, :id, :ram %>
  <br />
  <%= f.submit "Search" %>
<% end %>

但是,唯一对搜索起作用的是输入名称。我有两个问题。 1º 复选框不起作用。 2º 一些复选框是重复的,因为我输入了 Product.all,但也输入了不同的,但没有任何效果 =/ 你能帮帮我吗?

您可以尝试关注品牌、高清和内存

<% Product.pluck('distinct brand').each do |brand| %>
 <%= check_box_tag('q[brand_cont_any][]', brand ) %>
 <%= brand %>
<% end %>