如何使用ecto的新many_to_many功能在具有_many_to_many_关系的两个表之间建立关联?

我从组织到用户都有一对多的关系:

organization = Organization.shortcode_changeset(%Organization{}, org_field)
organization = organization |> Repo.insert!
organization |> build_assoc(:users)

这使
%User{__meta__: #ecto.Schema.Metadata<:built, "users">,......}

user = Repo.preload(user, [:organization, :usergroup])

我该如何在用户和组之间进行many_to_many操作?

最佳答案

这是我的做法:

user = user |> Repo.preload(:groups)
%Group{}
|> Group.changeset(@group_field)
|> Repo.insert!
|> Repo.preload(:users)
|> change
|> put_assoc(:users, [user])
|> Repo.update

仅在找到这篇使我能够继续进行的文章之后,我才能执行此操作:
http://blog.roundingpegs.com/an-example-of-many-to-many-associations-in-ecto-and-phoenix/

关于elixir - 如何建立和插入多对多关联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38389392/

10-10 17:21