当没有选择任何选项时,collection_select不允许ActiveRecord更新其集合

时间:2010-07-14 10:12:13

标签: ruby-on-rails select collections

我有两个模型之间的has_and_belongs_to_many关联。

我使用collection_select在表单中表示此关联中的其他模型。当我尝试取消选择collection_select中的选项时,collection_select不会发布其空值,因此,它不会让ActiveRecord将任何update子句传递给数据库。

e.g。参数如下; 选择的时候;   参数:{“name_of_model”=> {“name”=>“de2”,“other_model_ids”=> [“1”,“3”]}

未选中时;   参数:{“name_of_model”=> {“name”=>“de2”}

有人知道解决方法吗?

1 个答案:

答案 0 :(得分:1)

如果未将other_model_ids参数传递给控制器​​操作,则需要将其设置为空数组:

params[:name_of_model][:other_model_ids] ||= []

这将确保如果没有选择,那么模型将正确更新,以便它没有关联的模型ID。