我有两个模型之间的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”}
有人知道解决方法吗?
答案 0 :(得分:1)
如果未将other_model_ids
参数传递给控制器操作,则需要将其设置为空数组:
params[:name_of_model][:other_model_ids] ||= []
这将确保如果没有选择,那么模型将正确更新,以便它没有关联的模型ID。