从嵌套表单中删除项目而不是删除

时间:2014-08-21 03:27:48

标签: ruby-on-rails ruby-on-rails-4 cocoon-gem

我目前正在使用cocoon rails gem来创建嵌套表单。

当我编辑"父亲"实体并删除一些嵌套项,它添加另一个而不是删除它。我创建了一个gist文件,可以在rails控制台日志上使用ruby更好地解释它。这是:https://gist.github.com/msmosso/310835bbb1a4b7cfe1a9

谢谢你提前。 干杯!

2 个答案:

答案 0 :(得分:0)

这个问题的答案有帮助吗?

Cannot destroy existing nested association

具体是关于allow_destroy的部分。通过更新操作删除似乎相当不规范。也许有些东西连接不正确。

答案 1 :(得分:0)

client_params中,您可以指定客户端和嵌套商店允许的参数。您没有为商店指定:id,这确保了每次保存客户端时,它都将存储为新客户端。所以修复其实非常简单:

def client_params
  params.require(:client).permit(:name, stores_attributes: [:id, :client_id, :name, :name2, :district, :address, :number, :complement, :cnpj, :city_id, :mail, :obs, :status, :phone, :phone2, :phone3, :sversion, :_destroy])
end

在我尝试之前我没有看到,doh!

所以:我添加了:id并删除了:created_at:updated_at(最后两个并不真正相关,但你不希望那些列表中的那些)。