Rails Text Field Helper返回数组?

时间:2013-03-07 02:43:18

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个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

1 个答案:

答案 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作为第二个参数传递,它会将该字段设置为集体标记,以便我今天学到新东西。