カテゴリ: Rails 更新日: 2026/03/08

Hotwire超入門:Turbo Drive / Turbo Frames / Turbo Streams を一気に理解【Rails 7 / Rails 8】

Hotwire超入門:Turbo Drive/Frames/Streams を一気に理解【Rails 7/8】
Hotwire超入門:Turbo Drive/Frames/Streams を一気に理解【Rails 7/8】

先生と生徒の会話形式で理解しよう

生徒

「Rails 7やRails 8でよく聞くHotwireって、何をしてくれる仕組みなんですか?」

先生

「Hotwireは、JavaScriptをほとんど書かなくても、画面をサクサク動かせる仕組みだよ。」

生徒

「難しそうですが、パソコンを触ったことがなくても理解できますか?」

先生

「大丈夫。まずは仕組みをイメージでつかめば、自然と理解できるよ。」

1. Railsの基本・概要(Railsとは何か)

1. Railsの基本・概要(Railsとは何か)
1. Railsの基本・概要(Railsとは何か)

Railsは、Webアプリケーションを効率よく作るためのフレームワークです。フレームワークとは、最初から便利な道具箱が用意されている開発環境のことです。Railsでは「同じ書き方をすれば同じ動きをする」というお約束が多く、初心者でも迷いにくい特徴があります。

Hotwireは、このRailsの考え方にぴったり合う仕組みで、画面の更新を最小限にして、まるでアプリのような操作感を実現します。

2. 開発環境とインストール(Hotwireは標準装備)

2. 開発環境とインストール(Hotwireは標準装備)
2. 開発環境とインストール(Hotwireは標準装備)

Rails 7以降では、Hotwireは最初から組み込まれています。特別なインストール作業は不要です。これは「新しい家に最初からエアコンが付いている」ような状態です。

TurboやStimulusを意識しなくても、Railsアプリを作るだけでHotwireの恩恵を受けられます。

3. プロジェクト作成と構成(rails newとHotwire)

3. プロジェクト作成と構成(rails newとHotwire)
3. プロジェクト作成と構成(rails newとHotwire)

Railsでプロジェクトを作成すると、Hotwire関連の設定も自動で用意されます。特に重要なのがTurboです。Turboは画面の更新方法を賢く制御します。


rails new hotwire_sample

このコマンドだけで、Turbo Driveが有効な状態になります。

4. ルーティング入門(Turbo Driveの動き)

4. ルーティング入門(Turbo Driveの動き)
4. ルーティング入門(Turbo Driveの動き)

Turbo Driveは、ページ遷移を高速化する仕組みです。リンクをクリックしたとき、画面全体を再読み込みせず、必要な部分だけを更新します。


Rails.application.routes.draw do
  resources :posts
end

このルーティングだけで、Turbo Driveは自動的に働きます。

5. コントローラ基礎(Turboと通常処理)

5. コントローラ基礎(Turboと通常処理)
5. コントローラ基礎(Turboと通常処理)

コントローラは、画面に何を表示するかを決める司令塔です。Turboを使っても、基本的な書き方は変わりません。


class PostsController < ApplicationController
  def index
    @posts = Post.all
  end
end

Hotwireは裏側で動くため、初心者はまず通常のRailsとして理解すれば問題ありません。

6. ビューとテンプレート(Turbo Frames)

6. ビューとテンプレート(Turbo Frames)
6. ビューとテンプレート(Turbo Frames)

Turbo Framesは、画面の一部分だけを差し替える仕組みです。例えるなら、新聞の一部だけを新しい記事に入れ替えるイメージです。


<turbo-frame id="post_list">
  <%= render @posts %>
</turbo-frame>

このように囲むだけで、指定した部分だけ更新できます。

7. モデルとActive Record基礎(データとHotwire)

7. モデルとActive Record基礎(データとHotwire)
7. モデルとActive Record基礎(データとHotwire)

モデルはデータを扱う役割です。Hotwireはデータの保存方法を変えません。あくまで画面表示を賢くする仕組みです。


class Post < ApplicationRecord
end

このシンプルなモデルでも、Turbo Streamsと組み合わせると画面が自動更新されます。

8. マイグレーションと画面更新の関係

8. マイグレーションと画面更新の関係
8. マイグレーションと画面更新の関係

マイグレーションは、データベースの設計図です。Hotwireはデータ構造には影響しません。


create_table :posts do |t|
  t.string :title
  t.timestamps
end

データが変わった結果を、Turbo Streamsが即座に画面へ反映します。

9. バリデーションとTurbo Streams

9. バリデーションとTurbo Streams
9. バリデーションとTurbo Streams

バリデーションは入力チェックです。エラー表示もTurbo Streamsでスムーズに更新できます。


validates :title, presence: true

画面全体を更新せず、エラーメッセージだけを表示できます。

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
New1
Ruby
Rubyのシンボル(Symbol)と文字列(String)を徹底比較!初心者でもわかる速度・メモリ・用途の違い
New2
Ruby
Rubyの文字列フォーマットを完全ガイド!式展開・format・sprintfの使い分けを初心者向けに解説
New3
Rails
Railsのセキュリティ基本:CSRF・Strong Parameters・XSSの考え方を初心者向けに解説
New4
Rails
Hotwire超入門:Turbo Drive / Turbo Frames / Turbo Streams を一気に理解【Rails 7 / Rails 8】
人気記事
No.1
Java&Spring記事人気No1
Ruby
OpenSSL関連エラーの直し方を完全解説!証明書・ビルドオプション・brew対策まとめ
No.2
Java&Spring記事人気No2
Ruby
Rubyのchunk/chunk_while/slice_whenを完全解説!連続データを塊で扱う方法
No.3
Java&Spring記事人気No3
Rails
Railsのqueue_adapter完全比較ガイド|inline・resque・sidekiq・good_jobの選び方を初心者向けに解説
No.4
Java&Spring記事人気No4
Ruby
Rubyのreduceとinject入門!合計計算や集計を初心者向けに分かりやすく解説
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
Rails認可をやさしく理解!CanCanCan入門:ability.rbの定義とload_and_authorize_resource実例
No.7
Java&Spring記事人気No7
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.8
Java&Spring記事人気No8
Ruby
RubyでWeb/API開発を始めるには?RailsとSinatraの選び方と学習ロードマップ