【发布时间】:2021-06-25 16:59:12
【问题描述】:
我在Users 和Organizations 之间有多对多关系,使用自定义Members 架构作为连接表。
简化模式:
schema "members" do
field :role, :string
field :organization_id, :id
field :user_id, :id
end
schema "organizations" do
field :name, :string
many_to_many :users, App.Users.User, join_through: App.Organizations.Members, join_defaults: [role: "read"]
end
schema "users" do
many_to_many :organizations, App.Organizations.Organization, join_through: App.Organizations.Members, join_defaults: [role: "read"]
end
问题:创建新变更集时如何修改成员的role 参数? IE。当我创建新用户(和组织)时,如何在此处传递 role 使其不是默认值?
user = User.changeset(%User{}, %{"organizations": [%{"name": "test org"}]})
|> Ecto.Changeset.cast_assoc(:organizations, with: &App.Organizations.Organization.changeset/2)
【问题讨论】:
标签: elixir phoenix-framework ecto