3

Railsの初心者や多くのオンラインチュートリアルで、この例を見ます

<div class="field">
 <%= f.label :first_name %><br />
 <%= f.text_field :first_name %>
</div>
<div class="field">
 <%= f.label :last_name %><br />
 <%= f.text_field :last_name %>
</div>

このようなストア

"first_name"=>"foo", "last_name"=>"bar"

text_field または別のフォーム属性を使用して 2 つの入力を配列に格納する方法はありますか。最終的には次のようになります。

"name"=>["foo", "bar"]

これは好ましい方法ではありませんが、どのように行われるのか興味があります

アップデート

あなたの例では、 @user.first_name と .last_name を値として渡しています。私はもっ​​とこのようなことを考えていました:

 <div class="field">
  <%= f.label "First Name" %><br />
  <%= f.text_field :name %>
</div>
<div class="field">
 <%= f.label "Last Name" %><br />
 <%= f.text_field :name %>
</div>

しかない@user.first_nameところ@user.name[0]

4

1 に答える 1

2

これを達成するために使用できますtext_field_tag。(ドキュメント: http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-text_field_tag )

簡単な例は次のようになります。

text_field_tag 'name[]', @user.first_name
text_field_tag 'name[]', @user.last_name

これにより、パラメーターの下に両方の名前が送信されnameます。コントローラーで配列にアクセスできますparams[:name]

于 2013-01-06T00:44:53.057 に答える