我想获得在Ecto中工作的has_many :through
关系,该关系在User
模型和Group
模型之间存在多种关系。Ecto has_many:通过形式
我能在网上找到的唯一信息是在一个岗位由何塞·Valim here(这是优秀的,顺便说一句)有关嵌套的属性。
由于这些组已经存在于系统中,我希望做一个多选输入。我遇到过几个问题。我不认为可以直接在变更集中分配groups
关联,因为每次我尝试这样做时都会收到错误。我的下一个想法是手动完成这项工作(查找,删除和插入GroupMembership
记录),但我不确定这是否是正确的途径,并希望先得到一些建议。
由于代码示例有很多行,我做了一个要求here。
如果我最好直接在这个问题中发布它,我当然可以做到这一点。
感谢您的帮助!
我不能说Ecto代码,但我可以讲DB设计原则。关系数据库排序会告诉你,你不能建模n到n关系。你所做的是建立一个关系表(在你的情况下就像UsersInGroups),然后你从用户和组构建一个1-n。我不确定这会有助于您的Ecto问题,但它可能是更好的数据建模方法。 FWIW。 –