部分テンプレートとname属性の指定方法について

部分テンプレートのcollectionについて

部分テンプレートの基本表記

<%= render partial: 'ファイル名' %>

部分テンプレートを繰り返し表示したいとき

<%= render partial: 'ファイル名', collection: @books %>

このように書くと一つの記事項目をテンプレート化し,それを繰り返し表示することで一覧ページを作成することができる. @booksの要素の分だけ繰り返される. このとき,部分テンプレート内の変数はpartialで指定したものとなる.

部分テンプレートファイル内で以下のように使う.

<%= ファイル名.title %>

別の変数名で指定したいときはasオプションを使って指定する.

name属性とparamsの対応

基本形

name属性の値がそのままキーになる.

<input type="text" name="message">

この場合のparamsの中は { message: "入力された内容" } となる.

特別ルール1

name属性に[]を含め,かつ[ ]が空ではないときはハッシュとなる.

<input type="text" name="message[m1]" >

この場合のparamsの中は message = { m1: "入力された内容" } となる.

特別ルール2

name属性に[]を含め,かつ[ ]が空のときバリューは配列になる.

<input type="text" name="message[]" >
<input type="text" name="message[]" >

この場合のparamsの中は { message: ["入力された内容", "入力された内容"] } となる.

qiita.com

teratail.com