ページ内ナビ
概要
Turbo RailsはHotwire TurboをRuby on Railsへ統合するgemです。link/form navigationを高速化するDrive、pageを独立領域に分けるFrames、HTML fragmentを非同期更新するStreamsをRails helper・Action Cable・Active Jobと接続し、custom JavaScriptを減らしたinteractive UIを構築できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
Turbo Driveでlink・form navigationをfetchベースに高速化する
same-origin linkやform submissionをTurboがinterceptし、full page reloadの代わりにHTML responseを取得してbody/headを更新します。server-side routeとHTML renderingを維持したままnavigation体験を高速化できます。
出典:[1]
Turbo Framesでpageの一部を独立したnavigation単位にする
turbo_frame_tag等を使ってpageをframeへ分割し、frame内link/formからその領域だけを置換できます。lazy-loadや個別cache strategyにも利用できます。
出典:[1]
Turbo StreamsをAction Cable・Active Jobと接続してHTML fragmentをbroadcastする
model change等からTurbo Streamを生成し、Action Cable経由でsubscriberへ非同期配信できます。別JSON APIやclient-side templateを用意せずserver-rendered HTML fragmentを更新に再利用できます。
出典:[1]
向いている用途
Railsのserver-side renderingを維持しながらinteractive UXを強化したい場合に向く
Rails controller/view/modelを中心に設計しつつ、SPAのようなnavigationやpartial update、realtime broadcastを追加したいapplicationに適します。Stimulusと組み合わせると局所的なclient behaviorも補えます。
出典:[1]
導入前の確認
2.0.23はRuby 3.1以上・Rails 7.1以上を要求する
v2.0.23 gemspecはRuby >= 3.1、actionpack >= 7.1.0、railties >= 7.1.0を要求します。READMEの一般的なRails 7説明よりgemspecのversion constraintを優先して環境互換性を確認してください。
出典:[3]
developmentのAction Cable async adapterはprocessをまたいでbroadcastしない
READMEはdevelopment defaultのasync adapterでは別processのconsoleからserver processへTurbo broadcastが届かない点を注意しています。realtime behaviorを検証する際はAction Cable adapterとprocess topologyを確認します。
出典:[1]
参考にした公式資料
- [1]Turbo Rails v2.0.23 README(2026-10-04)
- [2]Turbo Rails v2.0.23 release(2026-10-04)
- [3]Turbo Rails v2.0.23 gemspec(2026-10-04)
- [4]Turbo Rails v2.0.23 version metadata(2026-10-04)
- [5]Turbo Rails MIT license(2026-10-04)
編集部からの補足
Rails 7ではHotwireが標準構成に入りやすいですが、v2.0.23の実際のdependencyはRails 7.1+相当です。導入時はgemspecのconstraintを確認してください。
3ステップで試す
- 1
既存Rails applicationへTurbo Rails 2.0.23を追加する
Ruby 3.1+・Rails 7.1+の既存applicationへstable 2.0.23をversion固定で追加します。
cd your-rails-app && bundle add turbo-rails --version 2.0.23 - 2
Turbo integrationをapplicationへinstallする
applicationのJavaScript構成に応じてTurboをinstallします。実行前後のGemfile・importmap/package設定差分をreviewしてください。
cd your-rails-app && bundle exec rails turbo:install - 3
serverを起動せずgem versionを確認する
Rails serverやAction Cable connectionを開始せず、loadされるTurbo Rails versionが2.0.23であることを確認します。
cd your-rails-app && bundle exec ruby -e 'require "turbo/version"; puts Turbo::VERSION'
成長
成長の推移 · 直近30日
2,397 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 30
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Kaminari8,667 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
RubyのWebアプリに連鎖可能なスコープと表示ヘルパーでページ分割を組み込む
Ruby - Stimulus13,103 Stars
共通タグ 3件 · 共通カテゴリ 1件
既存HTMLへcontroller・target・action属性でbehaviorを追加するHTML-first JavaScript framework
TypeScript - Redmine6,041 Stars
共通タグ 3件 · 同じ言語
課題・進捗・Wiki・工数・リポジトリ連携をまとめるセルフホスト型プロジェクト管理
Ruby - Ruby on Rails58,803 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
MVC・Active Record・job・mail・WebSocket・file storageまで一式で組むRuby製full-stack Web framework
Ruby - Devise24,355 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Wardenを基盤にRails authenticationをmodule単位で組み立てるauthentication framework
Ruby - CanCanCan5,682 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Railsの認可ルールをAbilityへ集約し、コントローラー・ビュー・検索条件で同じ権限制御を再利用する
Ruby
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。