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 <> 削除)

これにより、username 属性へのアクセスが困難になります。そうです:

@user.username = [:username]

パラメータは次のようになります

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

@user.username は (エスケープされた) ["newusername"] に設定されます - "--- - newusername" に設定されます

フォーム値の前後の [] を取り除く方法がわかりません! 私は何をすべきか?

編集: レールによって生成されたフォーム全体: http://tny.cz/0d5a9397

4

1 に答える 1

1

あなたが使用する必要があります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、2番目の引数として渡すと、そのフィールドが集合タグとして設定されるため、今日新しいことを学びました.

于 2013-03-07T03:02:46.057 に答える