首页 > 解决方案 > 将 inputs_for 与 @conn 一起使用

问题描述

我正在尝试创建这样的表单:

 <%= form_for @form_object, registration_path(@conn, :register), [class: "register_form"], fn f -> %>
    <div class="register_alert">
      <%= Web.PartialView.render("flash_alert.html", conn: @conn) %>
      <%= inputs_for f, :user, [default: %{name_first: nil}], fn fu -> %>
        <%= label fu, :name_first, "FIRST NAME", class: "register_label" %>
        <%= text_input fu, :name_first, class: "register_text-field"%>
      <% end %>
      <%= submit "Sign Up", class: "register_register-button" %>
    </div>
  <%end%>

@form_object是一conn开始传入的,因为在他们输入数据(创建表单)之前我没有变更集。但是,在尝试运行此程序时,我不断收到非常有用的“参数错误”崩溃。如果我删除 inputs_for 部分,一切都很好。您如何在 phoenix 中将 inputs_for 与连接对象一起使用?

正在使用 Phoenix 1.4.0。

标签: formselixirphoenix-framework

解决方案


Plug.Conn是一个struct包含几乎所有关于连接的东西。

Phoenix.HTML.Form.form_for接受连接对象作为第一个参数。

由于您提供的有关错误消息的信息为零的信息甚至比Phoenix提供的帮助更少,因此我建议问题出在@form_object. 您显然@conn手头有对象,将其作为第一个参数传递:

<%= form_for @conn, registration_path(@conn, :register) ...

推荐阅读