尝试按照此问题中的说明获取用于添加,编辑和删除嵌入文档的表单:Rails + MongoMapper + EmbeddedDocument form help。
我主要是为了工作,但是,在编辑文档时,如果通过单击删除链接删除了所有嵌入文档,则传递给控制器的params对象根本不包括数组字段,因此{ {1}}忽略它认为它没有被更改,因此根本不会删除嵌入的文档。
还有其他人遇到过这个吗?除了根据具体情况处理它的hacky方式之外,还有一个很好的,简洁的解决方案吗?
答案 0 :(得分:0)
这更像是一个params问题而不是MongoMapper问题。
建立Rails + MongoMapper + EmbeddedDocument form help ...
中的代码你可以尝试在所有答案之前添加一个隐藏字段,这样一个数组总会通过参数...
<%= hidden_field_tag 'problem[answers][]' %>
这将在你的参数中出现,如......
{ "problem" => { "answers" => [""] }
但那可能是错误的,所以也许更好的方法就是在update_attributes
之前在控制器中执行此操作...
params[:problem][:answers] ||= []