我目前正在使用cocoon rails gem来创建嵌套表单。
当我编辑"父亲"实体并删除一些嵌套项,它添加另一个而不是删除它。我创建了一个gist文件,可以在rails控制台日志上使用ruby更好地解释它。这是:https://gist.github.com/msmosso/310835bbb1a4b7cfe1a9。
谢谢你提前。 干杯!
答案 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
(最后两个并不真正相关,但你不希望那些列表中的那些)。