我有一个 Ruby on Rails 3.2.13 应用程序,其中有一个 collection_select 语句。collection_select 语句位于 fields_for 语句中,我从 collection_select 收集选定的 id 并使用它们填充另一个表。我遇到的问题是 collection_select 语句在存储所选 id 集合的数组中添加了一个空 id 条目。
在我看来,这是我的代码:
<%= f.fields_for :media_topics do |media_topic| %>
<%= media_topic.label :topic, "Topics" %><%= media_topic.collection_select(:topic_id, Topic.order("name_en"), :id, :name_en, {}, {multiple: true}) %>
<% end %>
以下是选择两个选项后数组外观的示例:
"media_topics_attributes"=>{"0"=>{"topic_id"=>["", "2", "47"], "id"=>"1895"}}
我认为数组应该只有两个 id,“2”和“47”。空值导致更新我的嵌套属性时出现问题,因为错误提示该值不能为空。当为具有相关行的行显示编辑视图时,collection_select 中的正确记录被选中并按预期在列表中突出显示。
如何更改不添加空条目的 collection_select 语句?我不允许添加 MediaTopic 模型上的任何行,且 topic_id 等于 null。我已经研究了好几天了。我发现一个人有类似的问题,但该问题的解决方案都不能解决问题。
任何帮助,将不胜感激。