フォームヘルパーとrenderを使用した部分テンプレートの書き方
・フォームヘルパー復習
= form_with model: @user do |f| = f.text_field :name = f.text_field :email 上記のフィールドを作成すると、以下のHTMLタグが生成される = input type="text" name=user[name] = input type="text" name=user[email] 上記のフォームを送信すると入れ子構造のparamsが返ってくる {user: {name: "匿名", email: "sample@example.com"}}
・renderメソッドを使用した部分テンプレートの書き方
= render partial: "ファイル名", locals: {"部分テンプレート内の変数": "呼び出し元の変数"} partialを省略したかったらlocalsも省略しないといけない。以下同じ挙動になる = render partial: "hoge", locals: {hoge: @hoge} = render "hoge", hoge: @hoge
・繰り返し処理内で部分テンプレートを書くとき、以下の書き方はいずれも同じ挙動になる
- User.all.each do |u| = render partial: "user", locals: {user: u} = render partial: "user", collection: User.all 以下3つの条件を満たすとより省略できる ①呼び出す部分テンプレートがviewsフォルダ内のusersフォルダにあり ②部分テンプレート名が _user.html.slim ③部分テンプレートで使う変数名が user = render User.all
・whereなどの絞り込み条件で否定形の構文はwhere.not で表現する