Ruby on rails Rails-通过参数传递多个复选框值
我使用gem进行实时过滤。 下面是一个没有提交和url的简单表单Ruby on rails Rails-通过参数传递多个复选框值,ruby-on-rails,checkbox,simple-form,params,Ruby On Rails,Checkbox,Simple Form,Params,我使用gem进行实时过滤。 下面是一个没有提交和url的简单表单 <%= smart_listing_controls_for(:search) do %> <%= simple_form_for :search do |f| %> <%= f.input :certificates, collection: Certificate.all, :as => :check_boxes, include_hidden: false, :input_ht
<%= smart_listing_controls_for(:search) do %>
<%= simple_form_for :search do |f| %>
<%= f.input :certificates, collection: Certificate.all, :as => :check_boxes, include_hidden: false, :input_html => {:multiple => true} %>
<% end>
<% end>
问题是,当我选中多个复选框时,证书数组只具有最新的值,而不是所有选中的复选框值
此外,选中和取消选中复选框时,参数中的证书数组值保持不变。如果取消选中该复选框,我希望从参数中的证书数组中删除该值,并且只希望证书数组仅包含所有选中的复选框值
以下是为多个复选框之一生成的html代码
<span class="checkbox">
<label for="search_certificates_5">
<input class="check_boxes required" type="checkbox" value="5" name="search[certificates][]" id="search_certificates_5">
Certificate 1
</label>
</span>
证书1
提前感谢:)由于的
智能列表控件和
的简单表单控件都用于创建表单,您可能遇到的一个问题是,您正在表单中创建表单,这既不是推荐的,也不是标准的。这可能会导致意想不到的结果
也许可以尝试在没有简单表单帮助程序的情况下执行此操作,类似这样的操作(假设证书
具有description属性):
bundle在更新Gemfile后安装,然后重试上述代码。感谢Rodrigo的回答。但它不起作用。和以前一样的问题。证书数组中只有一个值。以下是删除简单表单参数后的参数:{“utf8”=>“✓", "搜索智能列表“=>{”=>“1”,“页面”=>,“每页”=>“10”},“搜索”=>{“证书”=>[“6”]}
@Mahendhar我已经更新了我的答案。您仍然应该使用1表单,但当前版本也存在问题。检查我的答案。@Mahendhar嘿,我正试图完成一些类似的事情,每个复选框在被选中时都会被过滤掉。当前,一旦我取消选中复选框,我的复选框将不会取消筛选,并且如果我选中了多个复选框,它将不会显示所有选中复选框的输出。你能把我引向右边吗。谢谢@蒂姆:这一切都取决于你如何在你的控制器上过滤。请记住,表单提交时不会发送未选中的复选框(只有选中的复选框才会发送),因此您必须记住这一点,以便进行正确的筛选。@Tim,这是我在视图中的多个复选框代码
<span class="checkbox">
<label for="search_certificates_5">
<input class="check_boxes required" type="checkbox" value="5" name="search[certificates][]" id="search_certificates_5">
Certificate 1
</label>
</span>
<%= smart_listing_controls_for(:search) do %>
<%= Certificate.all.each do |certificate| %>
<div class="checkbox">
<label class= "checkbox inline">
<%= check_box_tag 'search[certificates][]', certificate.id %>
<%= certificate.description %>
</label>
</div>
<% end %>
<% end %>
gem 'smart_listing', :git => 'https://github.com/Sology/smart_listing.git', :ref => '79adeba'