2025年版 Ruby on Rails メモ(トップページ)
はじめに
久しぶりにRailsのお仕事に戻ってきたので、昔まとめていた Railsのお勉強(Rails 3.x 時代)を、2025 年の最新環境向けに追加したメモページです。
Ruby や Rails の主要バージョンが大きく変わり、フロントエンドやテスト環境も様変わりしているため、当時との「差分」を気にしながら書いていきますね!
あくまで自分用の備忘録なので、細かい説明よりも「こういうときどうする?」を思い出しやすい形でまとめる予定。
前提環境
- Ruby: 3.x
- Rails: 7.x / 8.x
この Wiki の目的
- Rails 最新版でアプリを作るための 最低限の知識をすぐ確認できる場所
- Rails 3 〜 4 時代からの大きな差分を把握
- Hotwire 時代の Rails を中心に、最新のアーキテクチャをまとめる
10年前のRailsから変わったところ
- Hotwire(Turbo & Stimulus)で、Rails が UI をまるごと担当する方向に進化
- JS 管理が Webpacker → Importmap / ESBuild / Bun / Vite の選択制に変化
- Rails Credentials による秘密情報管理(
secrets.yml は過去のものへ)
- Active Storage 標準化で画像・動画アップロードが簡単に
- RSpec + FactoryBot がテストの定番に
- API モード・SPA(React/Vue/Svelte)との連携が一般化
- Heroku 無料枠の終了に伴い、Render / Fly.io など新デプロイ先が定着
2025 年時点では、
「Rails で全部やる(Hotwire)」 と 「Rails を API 化してフロント分離」 の2路線がはっきりしている。
主要トピック
Hotwire(Turbo&Stimulus)
→ Hotwire(Turbo & Stimulus)
主な変更点
- Rails 標準のフロントエンドが Hotwire に統一
- Turbo Streams / Turbo Frames による非同期 UI
- Stimulus による最小限の JavaScript 実装
RailsのJavaScript管理方式の変遷
→ RailsのJavaScript管理方式の変遷
主な変更点
- Rails 6 までは Webpacker が標準の JavaScript 管理方式だったが、Rails 7 以降は JavaScript 管理を選択制に変更した。
Devise
→ Devise
- Rails の最定番認証ツール
- Turbo リダイレクト対応が要点
Active Storage
→ Active Storage
- 画像・ファイル管理の標準機能
- S3・ローカルなど複数ストレージに対応
Action Text(Trix Editor)
→ Action Text(Trix)
- リッチテキストを Rails 標準でサポート
- Active Storage と完全統合
RSpec
→ RSpec
- Rails 7〜8 でも主流のテストライブラリ
- System Spec × Turbo が現代的な構成
PORO(プレーン・オールド・ルビー・オブジェクト)
→ PORO / サービスクラス
- Fat Model/Fat Controller を避ける設計
- Query Object / Form Object / Presenter など
アプリ設計の大きな流れ(2025)
→ アプリ設計の大きな流れ(2025)
- コントローラは薄く
- ビジネスロジックは PORO へ
- フロントは Turbo 主体で最小限に
- Rails 標準機能(Active Job / Storage / Text)でなるべく統一
Rails × React / Vue(2025年版)
→Rails × React / Vue(2025年版)
今後追加予定
- Turbo の落とし穴集
- Stimulus のよく使うパターン
- 最新 Rails × React/Vue の構成メモ
- デプロイ(Fly.io / Render / Railway)
最終更新:2025年12月16日 08:54