为什么选择框中有空对象?

时间:2018-01-06 14:59:11

标签: ruby-on-rails

我正在学习Ruby on rails。我正在使用选择框。但是选择框的结果有一个空对象以及我的选择。为什么会这样? 提前谢谢。

这是我的表单:

<%= form.collection_select(:tag_ids, Tag.all, :id, :name, {}, :multiple => true) %>

这是参数中的tag_ids:

“tag_ids”=&gt; [“”,“52”]

1 个答案:

答案 0 :(得分:0)

如果没有选择任何内容,那么空对象就在那里。

如果在对restful controller中的更新操作的put请求中未选择任何内容时未提交空对象,那么tag_ids集合将不会更新,无论该请求保留之前该集合中是什么

让我们在请求之前说tag_ids = [1,2]

如果从多选框中没有选择任何内容,则不会提交任何内容,即使意图删除所有标记,也不会发生这种情况。

通过添加空字符串来确保它将作为空数组(或带有&#34;&#34;作为值的数组)提交给控制器。默认情况下不提交空输入。

在这种情况下,object.tag_ids = [&#34;&#34;]哪些rails会将其解释为空数组,因此tag_ids现在将保持为空