我想獲得在Ecto中工作的has_many :through
關係,該關係在User
模型和Group
模型之間存在多種關係。Ecto has_many:通過形式
我能在網上找到的唯一信息是在一個崗位由何塞·Valim here(這是優秀的,順便說一句)有關嵌套的屬性。
由於這些組已經存在於系統中,我希望做一個多選輸入。我遇到過幾個問題。我不認爲可以直接在變更集中分配groups
關聯,因爲每次我嘗試這樣做時都會收到錯誤。我的下一個想法是手動完成這項工作(查找,刪除和插入GroupMembership
記錄),但我不確定這是否是正確的途徑,並希望先得到一些建議。
由於代碼示例有很多行,我做了一個要求here。
如果我最好直接在這個問題中發佈它,我當然可以做到這一點。
感謝您的幫助!
我不能說Ecto代碼,但我可以講DB設計原則。關係數據庫排序會告訴你,你不能建模n到n關係。你所做的是建立一個關係表(在你的情況下就像UsersInGroups),然後你從用戶和組構建一個1-n。我不確定這會有助於您的Ecto問題,但它可能是更好的數據建模方法。 FWIW。 –