0

我有一个看起来像这样的 rails 表单助手:

<%= text_field :username,nil, {:placeholder=>"new username", :value=>nil} %>

当我查看由此生成的 HTML 时,它看起来像:

input id="username_" name="username[]" placeholder="new username" size="30" type="text"

(HTML <> 已删除)

这使得访问用户名属性很麻烦。我愿意:

@user.username = [:username]

参数看起来像

{"utf8"=>"✓", "authenticity_token"=>"...", "username"=>["newusername"], "commit"=>"Save", "id"=>"10"}

并且@user.username 被设置为(转义)[“newusername”] - 它被设置为“--- - newusername”

无法弄清楚如何摆脱表单值周围的 [] !我该怎么办?

编辑:由 rails 生成的整个表单:http: //tny.cz/0d5a9397

4

1 回答 1

1

你应该使用text_field_tag

<%= text_field_tag :username, nil, :placeholder => "new username" %>

usingtext_field以某种方式期望您在资源上工作。

text_field :user, :username

您仍然可以使用 text_field 但您必须明确设置名称

text_field :username, nil, name: 'username'

我不知道的是,如果您nil作为第二个参数传递,它将将该字段设置为集体标签,因此我今天学到了一些新东西。

于 2013-03-07T03:02:46.057 回答