Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 使用exto.Changeset.put\u assoc生成默认组_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 使用exto.Changeset.put\u assoc生成默认组

Elixir 使用exto.Changeset.put\u assoc生成默认组,elixir,phoenix-framework,Elixir,Phoenix Framework,我有一个用户和一个组模型(用户有许多组)。创建新的用户时,我想为该用户构建三个默认的组。让我们称它们为x,y和z(这将是名称) 我想exto.Changeset.put\u assoc是这项工作的合适工具。对的如何使用它在create功能中创建组 web/controllers/user\u controller.ex […] def create(conn,%%{“user”=>user_params})do changeset=User.changeset(%User{},User_参数)

我有一个
用户
和一个
模型(用户有许多组)。创建新的
用户
时,我想为该用户构建三个默认的
。让我们称它们为
x
y
z
(这将是
名称

我想
exto.Changeset.put\u assoc
是这项工作的合适工具。对的如何使用它在
create
功能中创建组

web/controllers/user\u controller.ex

[…]
def create(conn,%%{“user”=>user_params})do
changeset=User.changeset(%User{},User_参数)
案例回购插入(变更集)do
{:好的,用户}->
康涅狄格州
|>MyApp.Auth.login(用户)
|>put_flash(:info,“用户已成功创建”)
|>重定向(到:用户路径(连接,显示,用户))
{:错误,变更集}->
呈现(conn,“new.html”,变更集:变更集)
结束
结束
[...]
web/models/user.ex

defmodule MyApp.User do
使用MyApp.Web,:model
使用Arc.exto.Model
模式“用户”做什么
字段:名字,:字符串
字段:姓氏,:字符串
有很多:群组,MyApp.Group
[...]
web/models/group.ex

defmodule MyApp.Group do
使用MyApp.Web,:model
模式“组”做什么
字段:名称,:字符串
属于:用户,MyApp.user
[...]

首先,创建新组的列表:

groups =
  for name <- ~w(x y z) do
    Group.changeset(%Group{}, %{name: name})
  end
正常的
Repo.insert(变更集)
现在应该插入所有具有适当关联的内容

changeset =
  User.changeset(%User{}, user_params)
  |> Ecto.Changeset.put_assoc(:groups, groups)