我正在使用Ex_admin设置自定义更改集的功能。我们在Ecto 2中使用了新的cast_assoc和put_assoc功能。我很好奇人们如何处理以下场景,因为它似乎并没有得到Ecto Pheonix表单组合的良好支持:
为了使用cast_assoc删除关系,您实际上需要从传递给cast_assoc方法的参数中删除已删除的项目。当父架构有效时,这可以正常工作。但是,当需要使用无效的变更集重新呈现编辑表单时,缺少已删除的关联。这是一种奇怪的ui体验,因为用户应该看到与他们提交的内容相同的状态,并添加了错误。
那么人们如何将已删除的关联恢复到表单中?
答案 0 :(得分:0)
因此,似乎可以通过将删除操作附加到嵌套的变更集来在相关的模式方面执行此操作。它很好地覆盖在本文的底部http://blog.plataformatec.com.br/2015/08/working-with-ecto-associations-and-embeds/
附近答案 1 :(得分:0)
我最近合并了一个改善协会处理的公关。我们删除了"魔法"从ex_admin并将该责任委托给您的变更集。自述文件和测试有几个例子。
如果您使用has_many :through
进行多对多关联,则应将其转换为:many_to_many
。这可以在没有任何架构更改的情况下完成
请在GitHub上查看主分支。