Ruby on rails 如果已清空嵌入文档的数组,则update_属性不会删除嵌入文档

Ruby on rails 如果已清空嵌入文档的数组,则update_属性不会删除嵌入文档,ruby-on-rails,mongomapper,Ruby On Rails,Mongomapper,正在尝试获取用于添加、编辑和删除嵌入文档的表单,如此问题中所述: 但是,在编辑文档时,如果通过单击“删除”链接删除所有嵌入的文档,则传递给控制器的params对象根本不包括数组字段,因此update_attributes会忽略它,认为它没有被更改,所以实际上根本不会删除嵌入的文档 还有其他人遇到过这种情况吗?除了用一种老套的方法逐案处理外,还有一个好的、简洁的解决方案吗?这更像是一个参数问题,而不是一个MongoMapper问题 正在构建中的代码 您可以尝试在所有答案之前添加一个隐藏字段,以便数

正在尝试获取用于添加、编辑和删除嵌入文档的表单,如此问题中所述:

但是,在编辑文档时,如果通过单击“删除”链接删除所有嵌入的文档,则传递给控制器的params对象根本不包括数组字段,因此
update_attributes
会忽略它,认为它没有被更改,所以实际上根本不会删除嵌入的文档


还有其他人遇到过这种情况吗?除了用一种老套的方法逐案处理外,还有一个好的、简洁的解决方案吗?

这更像是一个参数问题,而不是一个MongoMapper问题

正在构建中的代码

您可以尝试在所有答案之前添加一个隐藏字段,以便数组始终通过参数

<%= hidden_field_tag 'problem[answers][]' %>
但这可能会出错,所以更好的方法可能是在
更新\u属性之前在控制器中执行此操作

params[:problem][:answers] ||= []

你的第二个选择基本上是我设想的那种在个案基础上处理问题的老套方法。
params[:problem][:answers] ||= []