1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者プログラマー】SaveData開発日記 # UIをリッチにしよう Turboとモーダル学び会

Posted at

備忘録的になりますが
参考になればと思います。

【画面の編集画面について】
スクリーンショット 2026-01-24 1.03.22.png
このへんしゅう

を押した時に
「ぴょいん」って編集画面がそのまま出てきたら
いいなあの会です

要約すると
ターボストリームとかターボフレームとかいうターボ系の話
その違いと活用方法 今回は「もーだる」ってのつくるお

今回のアプリの登録済みゲームについて
『編集』『削除』
を画面遷移をなるべく伴わないものにしたかった

理由

  • そもそもこの二つはあまり行わないアクションだと思った
  • なんかかっこいいじゃん
  • 画面遷移多いと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 = 命令書

ターボストリームだけだと思ってたから
びっくり。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?