Ruby on RailsⅡ3章 投稿を編集、削除しよう(その2)
20170215@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
目次
投稿データの更新
前回は更新ページを作ったので、今回は更新&DBに反映を行う。
- 更新はupdateアクションで行う
- ルーティング設定はpatch
- showアクションにリダイレクトするのでビューは用意しない
form_tag
ヘルパーではmethodを指定できて、デフォルトだとpost
になる。今回はpatch
を指定。
やったこと
routes.rb
に
patch '/notes/:id' => 'notes#update', as: 'update_note'
を追加。
notes_controller.rb
に
def update @note = Note.find(params[:id]) @note.title = params[:title] @note.content = params[:content] @note.save redirect_to note_path(@note.id) end
を追加。
あれ、これってcreateアクションとほとんど一緒だよね?
edit.html.erb
を
<%= form_tag update_note_path(@note.id), method:'patch' do %>
に。
投稿の削除
- 投稿の削除はdestroyアクションで行う
やったこと
routes.rb
に
delete '/notes/:id' => 'notes#destroy', as: 'destroy_note'
を追加。
notes_controller.rb
にdestroyアクションを追加。
def destroy @note = Note.find(params[:id]) @note.destroy redirect_to notes_path end
show.html.erb
に
<%= link_to "削除", destroy_note_path(@note.id), method: "delete", class: "btn destroy-btn", "data-confirm" => "本当に削除しますか?" %>
を追加。
これでRuby on RailsⅡのレッスンをクリア! 次からはRuby on RailsⅠの復習を兼ねた道場コースに突入。
今回の勉強時間:27分 累計勉強時間:3時間31分