Sinatra3

やった事

・PATCHとDELETEを実装した

PATCHについて

一次情報はこれなのかな?
難しく理解出来ず😭他のものをググった
RFC 5789: HTTP の PATCH メソッド

PatchとPutの違いについて - Qiita
RESTにおけるPUTとPATCHの違い – Regardie's Salesforce Blog

POST, PUT, PATCHの違い

PUT
・既存リソースの新しいものに置き換える
・新しいリソースの中に既存リソースにある要素がない場合、その要素は削除される
・PUTがないAPIもある
PATCH
・既存リソースに新しいものを付け足す
・新しいリソースの中に既存リソースにある要素がない場合でもその要素は削除されない
・PATCHがないAPIもある

PATCHメソッドとDELETEメソッドの実装の仕方

必須要件
・追加はPOSTメソッド、編集はPATCHメソッド、削除はDELETEメソッドで実装すること

このPATCHメソッドとDELETEメソッドはどう書けばいいのかと悩む。
「Webを支える技術」を読み、formからではなくXMLHttpRequestというものを使わなければいけないのかな?と勘違いして調べた。

Ajaxについて

Ajaxとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
Ajaxとはどういうもの?基本情報から仕組みまで詳しく解説|発注成功のための知識が身に付く【発注ラウンジ】

XMLHttpRequestについて

XMLHttpRequest(XHR)とは - 意味をわかりやすく - IT用語辞典 e-Words

XMLHttpRequestの使い方(1) | JavaScript実践編 - ウェブプログラミングポータル
XMLHttpRequestの使い方(2) | JavaScript実践編 - ウェブプログラミングポータル

RailsにおけるAjaxの実装(JavaScriptとjQueryのコード比較) - Qiita
具体的なコードの書き方だと思うが、JavaScriptが分からないせいか難しすぎるせいか理解出来ず!
でもこの掲示板にコメントを書き込みボタンを押すと、XMLHttpRequestで画面を移管せずにコメントが反映される仕組みの様。
こういう場合に使うものなのか!コードも具体的で分かりやすい!
JavaScriptを勉強したらもう一度読み返したい!

とりあえず今回のプラクティスはHTTPメソッドに対し画面を移管して表示を行うから、formでの実装で良さそうな事に気づいた。

DELETEメソッドをformに書いた

<form action="/memos/<%=@id%>" method ="POST">
  <button type="submit">削除</button>
  <input type="hidden" name="_method" value="DELETE">
</form>

フォームの中にinput type="hidden”…を入れてボタンを押したら、/memos/idにDELETEメソッドが渡された!

その他

  • binding.irbを使ってデータが渡されているかなど調べると便利!
  • メモの表示をtitleで引っ張ってきていたけど、idをつけないといけない事に気づいて修正した