我有一个rails form helper,如下所示:
<%= text_field :username,nil, {:placeholder=>"new username", :value=>nil} %>
当我查看由此生成的HTML时,它看起来像:
input id="username_" name="username[]" placeholder="new username" size="30" type="text"
(HTML&lt;&gt;已移除)
这使得访问用户名属性令人不安。我这样做:
@user.username = [:username]
Params看起来像
{"utf8"=>"✓", "authenticity_token"=>"...", "username"=>["newusername"], "commit"=>"Save", "id"=>"10"}
@ user.username设置为(转义)[“newusername”] - 它设置为“--- - newusername”
无法弄清楚如何摆脱表单值周围的[]!我该怎么办?
编辑:由rails生成的整个表单: http://tny.cz/0d5a9397
答案 0 :(得分:0)
你应该使用text_field_tag
<%= text_field_tag :username, nil, :placeholder => "new username" %>
使用text_field
以某种方式期望您使用资源。
text_field :user, :username
您仍然可以使用text_field,但必须明确设置名称
text_field :username, nil, name: 'username'
我不知道的是,如果您将nil
作为第二个参数传递,它会将该字段设置为集体标记,以便我今天学到新东西。