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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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 的嵌套表单有许多关联_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 的嵌套表单有许多关联

Elixir 的嵌套表单有许多关联,elixir,phoenix-framework,Elixir,Phoenix Framework,一个用户有很多电子邮件。如何创建新的用户,并在表单中嵌套一封新的电子邮件 user\u controller.ex [...] def new(conn, _params) do changeset = User.changeset(%User{}) render(conn, "new.html", changeset: changeset) end [...] [...] <%= inputs_for f, :emails, fn ef -> %> <di

一个用户有很多电子邮件。如何创建新的
用户
,并在表单中嵌套一封新的
电子邮件

user\u controller.ex

[...]
def new(conn, _params) do
  changeset = User.changeset(%User{})
  render(conn, "new.html", changeset: changeset)
end
[...]
[...]
<%= inputs_for f, :emails, fn ef -> %>
  <div class="form-group">
    <%= label ef, :value, class: "control-label" %>
    <%= text_input ef, :value, class: "form-control" %>
    <%= error_tag ef, :value %>
  </div>
<% end %>
[...]
form.html.eex

[...]
def new(conn, _params) do
  changeset = User.changeset(%User{})
  render(conn, "new.html", changeset: changeset)
end
[...]
[...]
<%= inputs_for f, :emails, fn ef -> %>
  <div class="form-group">
    <%= label ef, :value, class: "control-label" %>
    <%= text_input ef, :value, class: "form-control" %>
    <%= error_tag ef, :value %>
  </div>
<% end %>
[...]
[…]
%>
[...]

关于这个问题有几个Stackoverflow问题,但没有一个解决这个简单的问题。

在控制器中,使用
exto.Changeset.put\u assoc/4

alias MyApp.Email

[...]

changeset =
  User.changeset(%User{})
  |> Ecto.Changeset.put_assoc(:emails, [%Email{}])
render(conn, "new.html", changeset: changeset)
这将创建一封带有默认值的空
%Email
,并将其放入变更集的
:Email
关联中