我正在学习Ruby on rails。我正在使用选择框。但是选择框的结果有一个空对象以及我的选择。为什么会这样? 提前谢谢。
这是我的表单:
<%= form.collection_select(:tag_ids, Tag.all, :id, :name, {}, :multiple => true) %>
这是参数中的tag_ids:
“tag_ids”=&gt; [“”,“52”]
答案 0 :(得分:0)
如果没有选择任何内容,那么空对象就在那里。
如果在对restful controller中的更新操作的put请求中未选择任何内容时未提交空对象,那么tag_ids集合将不会更新,无论该请求保留之前该集合中是什么
让我们在请求之前说tag_ids = [1,2]
如果从多选框中没有选择任何内容,则不会提交任何内容,即使意图删除所有标记,也不会发生这种情况。
通过添加空字符串来确保它将作为空数组(或带有&#34;&#34;作为值的数组)提交给控制器。默认情况下不提交空输入。
在这种情况下,object.tag_ids = [&#34;&#34;]哪些rails会将其解释为空数组,因此tag_ids现在将保持为空