我想创建一个-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:
答案 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>
希望它有所帮助。