我正在尝试创建将返回一个tag_id数组的复选框,以便我可以通过它们进行搜索。为了做到这一点,我认为我需要在复选框中包含{:multiple => true},但我不确定,因为我对Ruby on Rails很陌生。我不确定为什么会导致此错误发生,但是当我删除这段代码时,该错误就会消失。为了使这项工作有效,我需要包括什么?或者我需要考虑其他解决方案?如果我所包含的内容不够,请告诉我是否需要包含更多代码。
(注意:此代码尚无法正常运行,只是试图解决此错误)
applist.erb:
<h2 class="ml-5">Categories</h2>
<% tags = Tag.all %>
<%= form_tag("../welcome/tagsearch", :method => "get") do%>
<% tags.each{|tag| %>
<div class="form-check ml-2">
<%= check_box_tag :tag_ids, {:multiple => true}, tag.id, nil%>
<label class="form-check-label"> <%= tag.name %></label>
</div>
<% } %>
<div class="input-group">
<div class="input-group-btn ml-1">
<div class="input-group-btn">
<%= button_tag(:class => 'btn btn-dark',:name => nil) do%>
Submit
<% end %>
</div>
</div>
</div>
<% end %>
</div>
<div class="col-8">
错误: nil:NilClass的未定义方法'stringify_keys'
答案 0 :(得分:1)
我修复了该错误,最终执行了以下操作:
<%= check_box_tag "tag_ids[]", tag.id, false, :id => "tag_ids_#{tag.id}" %>
而不是执行倍数=> true,而是有效。