如何在没有名称的<form>中设置名称:?

时间:2016-02-05 01:42:33

标签: phoenix-framework

我想创建一个-whatif标记,如下所示:

<form>

正如http://hexdocs.pm/phoenix_html/Phoenix.HTML.Form.html中的在线文档所述,我在以下模板中调用form_for:

<form accept-charset="UTF-8" action="/login" method="post" name="login_form">

但会发出警告:<%= form_for @changeset, login_path(@conn, :index), [name: :login_form], fn form -> %>

禁止用the :name option in form_for/inputs_for is deprecated, please use :as instead替换name:,但省略了name参数。如何使用as:或其他参数设置名称?

as:

1 个答案:

答案 0 :(得分:2)

我认为您应该使用两个键(:name:as)作为解决方法,直到删除弃用。

name: tag键设置name="login_form"属性将表单字段设置为login_form[field_name]。 在我看来,冲突的原因是:name改为:as

代码

<%= form_for @changeset, @action, [name: "login_form"], fn f -> %>
    <%= text_input f, :user, class: "form-control" %>
<% end %>

结果

<form name="login_form" method="post">
    <input name="login_form[user]" type="text">
</form>

如果同时设置:as标记,则覆盖:name的字段对象定义。

代码

<%= form_for @changeset, @action, [name: "login_form", as: "account"], fn f -> %>
    <%= text_input f, :user, class: "form-control" %>
<% end %>

结果

<form name="login_form" method="post">
    <input name="account[user]" type="text">
</form>

希望它有所帮助。