Ruby on Rails Ⅲ 2章 scaffoldのコードに近付けよう(2)
20170303@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
目次
form_for
form_for
ヘルパーを使うと、form_tag
ヘルパーを使うときと比べてより簡単に作ることができる・・・?
form_for
の書き方は
<%= form_for(インスタンス) do |f| %> <% end %>
f
のところは、こう書く。
form_forの中身を書こう
`form_forの中身のフォームも、ヘルパーで簡単に書けるらしい。
例えば
<%= form_for(@note) do |f| %> タイトル <%= f.text_field :title, class: "form-control" %> 内容 <%= f.text_area :content, class: "form-control" %> <%= f.submit "保存", class: "btn" %> <% end %>
パーシャルを作ろう
小林製薬のパーシャルデント 消臭洗浄 108錠 入れ歯洗浄剤 部分入れ歯用
- メディア: ヘルスケア&ケア用品
new.html.erb
では@note
がデータベースに保存されていなかった。(これから新規に作るので)
→じゃあedit.html.erb
だったら?既存の@note
のタイトルとコンテンツを引っ張ってこないといけない。
form_for
の引数オブジェクトが既にDBに保存されている場合、create
アクションではなくupdate
アクションへのパスが自動的に設定される。
つまり、editのほうでは何か違った書き方をしなければいけないわけではない。
そのため、new.html.erb
とedit.html.erb
のコードのうち、form_for
の部分が全く一緒になる。それならまとめたい。
そこでパーシャル
ビューファイルのコードの重複を取り除いたり、見やすくしたりするために、コードの一部分を抜き出したファイルのことを「パーシャル」と呼びます。
なるほど。
- パーシャルのファイル名はアンダーバーから始まる。
- パーシャルはrenderメソッドで
render 'フォルダ名/パーシャル名'
で。
updateメソッド
フォームの送信先のupdateアクション、scaffoldで生成されたほうはupdateメソッドを使っている。
updateメソッドは
update(title: 値, content: 値)
のように、引数にハッシュをとることができる。
クリアー。
今回の勉強時間:45分 累計勉強時間:9時間44分