Ruby on RailsⅡ3章 投稿を編集、削除しよう
20170214@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
章の目次
- 投稿を編集、削除しよう
- 投稿編集ページの準備
- 投稿編集フォームの作成 ← 今回はここまで
- 投稿データの更新
- 投稿の削除
記事目次
投稿編集ページの準備
投稿編集ページを作る。 最初からフォームタイトルとコンテンツが入っている状態。
- editアクションを用意
routes.rb
に追加notes_controller.rb
にeditアクションを追加
やったこと
routes.rb
に
get '/notes/:id/edit' => 'notes#edit', as: 'edit_note'
を追加。
notes_controller.rb
に
def edit @note = Note.find(params[:id]) end
を追加。
app/views/notes/edit.html.erb
を作成。
show.html.erb
に追加するところで詰まった。
ヒントによると
<%= link_to "表示するテキスト", 名前付きルート(@変数名.id), class: "class名" %>
と書くらしいので、
<%= link_to "編集", edit_note_path(@note.id), class: "btn edit-btn" %>
を追加。
ここまでで編集ボタンが表示され、押下するとeditページに飛ぶようになった。 まだeditページの中身を作成していないので空のページが表示される。
投稿編集フォームの作成
投稿フォームに初期値を入れたい件
ヘルパーを使って投稿フォームに初期値を入れる
- text_field_tag
- text_area_tag
edit.html.erbの記述
ハマった。
<h1>投稿を編集する</h1> <%= form_tag do %> <%= text_field_tag :title, @note.title %> <%= text_area_tag :content, @note.content %> <%= submit_tag'保存' %> <% end %>
の中で、最初
<%= text_field_tag:title, @note.title %>
のように、コロンの前に半角スペース無しで動かそうとしていたところ
unexpected tLABEL
等のエラーが出た。
スライドだと:title
が四角で囲ってあるおかげで分かりづらかった・・・。
今回の勉強時間:40分 累計勉強時間:3時間4分