10000hの技術メモ

この先生きのこるための勉強内容&時間記録

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分