如何修复{:multiple => true}导致nil:NilClass出现未定义的方法stringify_keys?

时间:2019-05-06 01:18:45

标签: html ruby-on-rails ruby

我正在尝试创建将返回一个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'

1 个答案:

答案 0 :(得分:1)

我修复了该错误,最终执行了以下操作:

<%= check_box_tag "tag_ids[]", tag.id, false, :id => "tag_ids_#{tag.id}" %>

而不是执行倍数=> true,而是有效。