備忘録的になりますが
参考になればと思います。
を押した時に
「ぴょいん」って編集画面がそのまま出てきたら
いいなあの会です
要約すると
ターボストリームとかターボフレームとかいうターボ系の話
その違いと活用方法 今回は「もーだる」ってのつくるお
今回のアプリの登録済みゲームについて
『編集』『削除』
を画面遷移をなるべく伴わないものにしたかった
理由
- そもそもこの二つはあまり行わないアクションだと思った
- なんかかっこいいじゃん
- 画面遷移多いとWEBアプリってよりHPみたいな感覚になるのが嫌
そこで候補に上がったのがモーダル
画面上に出てくる広告とかみたいなやーつ
で、編集といえばedit updateだよね
| 操作 | 役割 | 画面 |
|---|---|---|
| edit | 編集用HTMLを返す | 表示 画面遷移する |
| update | DBを書き換える | 処理 画面遷移しない |
だと思ってたのだが必ずしもそうとは限らない
Turboを使うとそれは変わる。。。
例:
full pageを返せば 画面遷移する
particalを返せば 差し替え(入れ替え)になる
今回はTurboを使ってかっけえデザインにしていくぜ
RESTの理解
| 操作 | HTTP | 役割 |
|---|---|---|
| 編集画面を「表示」 | GET | 見せる |
| 編集内容を「保存」 | PATCH | 書き換える |
| PATCHの方が編集してる感があるが(パッチを当てる的な) | ||
| 『編集ボタンを押した瞬間はまだ何も編集していない』のでPATCHは使えない。 |
編集ボタンは GET か PATCH か?
→GET →なぜならばまずは情報を取得しないことには何も始まらないから
ここでゲーム一件分のデータを取得する
PATCH が許されるのは いつか?
→ゲーム一件分の情報を取得した後
Turbo はHTTPを変える技術か? 表示を変える技術か?
→あくまで表示を変えるもの HTTPの構造変えられたらそれって新種のウイルスかな
turbo_frame とは何か(本質)
「部分更新の対象を明示するタグ」
ブラウザではなく
RailsとTurboが読むための目印
名前(id)を持つ
同じ名前の frame に
レスポンスが流し込まれる
turbo_frame があると何が起きるか
GET /edit を叩く
サーバーが HTML を返す
そのHTMLがページ全体を壊さない
指定された frame の中身だけが置き換わる
👉 画面遷移は起きない。
なぜモーダルと相性がいいのか
モーダルは
「中身だけを頻繁に入れ替えるUI」
turbo_frame は
「中身だけを差し替える仕組み」
👉 役割が完全一致
ターボストリームと何が違う?そもそも違う?
turbo_frame と turbo_stream の違い(重要)
ややこしや。
turbo_frame
1箇所を1回更新
GET /edit に向いている
turbo_stream
複数箇所を命令で更新
update / destroy 後に向いている
覚え方:
frame = 入れ物
stream = 命令書
ターボストリームだけだと思ってたから
びっくり。
