1日1%成長するブログ

毎日成長するために仕事/プライベートで得た学びをアウトプットするブログです

Railsのフォームで配列を扱う方法

fields_forとか便利メソッドを使って根本が理解できていないまま、 コードを書くのは応用が効かないので、シンプルに書く。

Webシステムではクライアントからサーバーにリクエストを投げるのにフォームを使う。 nameに指定したキーで値を取り出す。

同じnameのものを複数指定する場合は配列にする。 HTMLで表現すると以下のようになる。

<input type="text" name="name[]" id="name_" class="form-control">
<input type="text" name="name[]" id="name_" class="form-control">
<input type="text" name="name[]" id="name_" class="form-control">

これをRailsのフォームで書く場合はこう。

<% @items.each do |item| %>
   <%= text_field_tag 'name[]', item.name, class: "form-control" %>
<% end %>

Railsではリクエストされた値を受け取るには params を使う。 name => [1,2,3] のような形式で受け取ることができる。