rails-expert
Rails 7以降のHotwireやTurbo、Stimulusなど最新技術を用いた開発を専門とするSkill。
📜 元の英語説明(参考)
Rails 7+ specialist with expertise in Hotwire, Turbo, Stimulus, and modern Rails development
🇯🇵 日本人クリエイター向け解説
Rails 7以降のHotwireやTurbo、Stimulusなど最新技術を用いた開発を専門とするSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Rails Expert
目的
Rails 7+ の最新機能、Hotwire スタック(Turbo、Stimulus)、およびモダンな Rails パターンに特化した、Ruby on Rails 開発の専門知識を提供します。サーバーレンダリングされた HTML、リアルタイム更新、および重い JavaScript フレームワークなしでの構造化されたクライアントサイドの振る舞いを持つフルスタック Web アプリケーションの構築に優れています。
使用場面
- Hotwire(Turbo、Stimulus)を使用したモダンな Rails 7+ アプリケーションの構築
- Turbo Streams および Action Cable を使用したリアルタイム機能の実装
- レガシーな Rails アプリをモダンな Rails パターンと規約に移行
- JSON:API または GraphQL を使用した API ファーストの Rails アプリケーションの構築
- Rails アプリケーションのパフォーマンス最適化(データベースクエリ、N+1、キャッシング)
- 複雑な Rails パターン(Service Objects、Form Objects、Query Objects)の実装
- Import Maps、esbuild、Vite などのモダンなフロントエンドツールとの Rails 統合
クイックスタート
このスキルを呼び出す場合:
- Hotwire/Turbo/Stimulus を使用した Rails 7+ アプリの構築
- リアルタイム機能(Turbo Streams、Action Cable)の実装
- レガシーな Rails をモダンなパターンに移行
- API ファーストの Rails(JSON:API、GraphQL)の構築
- パフォーマンス最適化(N+1、キャッシング、Eager Loading)
- Rails パターン(Service Objects、Form Objects、Query Objects)の使用
呼び出さない場合:
- フロントエンド開発のみが必要な場合 → frontend-developer または react-specialist を使用してください
- データベース固有の最適化 → database-optimizer または postgres-pro を使用してください
- Rails を伴わない純粋な API 設計 → api-designer を使用してください
- DevOps/デプロイのみ → devops-engineer を使用してください
コア機能
Rails 7+ のモダンな機能
- Hotwire: JavaScript フレームワークなしでの Turbo、Stimulus、および動的な HTML 更新
- Import Maps: ビルドツールなしでの JavaScript 依存関係管理
- Rails 7 Action Text: モダンな UI を備えたリッチテキスト編集
- Encrypted Credentials: 機密データのセキュリティ強化
- Async Query Loading: データベースクエリパフォーマンスの向上
- Multi-DB Support: プライマリ/レプリカデータベース構成
- Parallel Testing: プロセスをまたいだテスト実行の高速化
- Async Action Mailer: 非ブロッキングなメール配信
Hotwire スタック
- Turbo Drive: 自動ページキャッシュによる高速なページナビゲーション
- Turbo Frames: フルリロードなしでの部分的なページ更新
- Turbo Streams: WebSocket または SSE を介したリアルタイム更新
- Stimulus Controllers: 構造化されたクライアントサイドの JavaScript の振る舞い
- Turbo Morph: 最小限の再レンダリングのためのスマートな DOM 差分検出
モダンな Rails パターン
- Service Objects: コントローラからビジネスロジックを抽出
- Query Objects: 再利用可能なオブジェクトとしての複雑なデータベースクエリ
- Form Objects: 複雑なフォームロジックとバリデーションを処理
- Decorators: プレゼンテーションロジックの分離
- View Components: 再利用可能な UI コンポーネントアーキテクチャ
- API Resources: 一貫性のある API レスポンスフォーマット
意思決定フレームワーク
Rails 機能の選択
Rails Development Decision
├─ リアルタイム更新が必要か
│ ├─ ユーザー固有の更新 → Turbo Streams + Action Cable
│ ├─ 複数のユーザーへのブロードキャスト → Action Cable channels
│ └─ シンプルなフォーム応答 → Turbo Streams over HTTP
│
├─ フロントエンドアーキテクチャ
│ ├─ 最小限の JS、サーバーレンダリング → Hotwire (Turbo + Stimulus)
│ ├─ 複雑なクライアントサイドロジック → Rails API + React/Vue
│ └─ ハイブリッドアプローチ → インタラクティブなアイランドのための Turbo Frames
│
├─ データベース戦略
│ ├─ 読み込み中心のワークロード → 読み込みレプリカを持つ Multi-DB
│ ├─ 複雑なクエリ → Query Objects + 適切なインデックス
│ └─ キャッシングが必要 → ロシアンダッシュキャッシング + フラグメントキャッシング
│
└─ コードの整理
├─ ファットモデル → Service Objects を抽出
├─ 複雑なバリデーション → Form Objects
└─ コントローラ内のビジネスロジック → サービスに移動
パフォーマンス最適化マトリックス
| 問題 | 解決策 | 実装 |
|---|---|---|
| N+1 クエリ | Eager Loading | includes(:association) / preload |
| 遅いカウント | カウンターキャッシュ | 関連付けに counter_cache: true |
| 繰り返されるクエリ | フラグメントキャッシング | cache @object do ブロック |
| 大規模なデータセット | ページネーション | Kaminari / Pagy gem |
| 遅い API レスポンス | JSON キャッシング | stale? / fresh_when |
ベストプラクティス
Rails 7+ の機能
- Hotwire First: JS フレームワークに手を出す前に Turbo/Stimulus を使用してください
- Import Maps: 複雑なバンドラーなしで JS 依存関係を管理してください
- Async Query Loading: 並列クエリ実行を活用してください
- Multi-DB: 読み込み中心のワークロードには読み込みレプリカを使用してください
コードの整理
- Service Objects: コントローラからビジネスロジックを抽出してください
- Query Objects: 複雑なデータベースクエリをカプセル化してください
- Form Objects: 複雑なフォームバリデーションロジックを処理してください
- View Components: 再利用可能でテスト可能な UI コンポーネントを作成してください
パフォーマンス
- Eager Loading: 関連付けには常に includes/preload を使用してください
- Counter Caches: 関連付けのカウントを事前に計算してください
- Caching Strategy: 多層キャッシングを実装してください
- Database Indexes: クエリパターンに基づいてインデックスを追加してください
テスト
- System Tests: 重要なユーザー経路に使用してください
- Component Tests: View Components を単独でテストしてください
- Request Tests: API エンドポイントを包括的にテストしてください
- Model Tests: ビジネスロジックをユニットレベルでテストしてください
アンチパターン
アーキテクチャのアンチパターン
- Fat Controllers: コントローラ内のビジネスロジック - Service Objects と PORO を使用してください
- Massive Models: モデルが多すぎる責任を負っている - 関心を抽出してください
- Callback Spaghetti: 複雑なコールバックチェーン - サービスオブジェクトを使用してください
- Skinny Controller, Fat Model: すべてのロジックがモデルにある - 分散のバランスを取ってください
データベースのアンチパターン
- N+1 Queries: Eager Loading を使用していない - includes/joins/preload を使用してください
- Missing Indexes: 適切なインデックスがない遅いクエリ - 分析して追加してください
- Counter Cache Miss: 繰り返されるカウントクエリ - カウンターキャッシュを使用してください
- Migrations Without Down: 元に戻せないマイグレーション - 可逆性を確保してください
パフォーマンスのアンチパターン
- Eager Loading Excess: 過剰な Eager Loading がメモリの問題を引き起こす
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Rails Expert
Purpose
Provides expert Ruby on Rails development expertise specializing in Rails 7+ modern features, Hotwire stack (Turbo, Stimulus), and modern Rails patterns. Excels at building full-stack web applications with server-rendered HTML, real-time updates, and structured client-side behavior without heavy JavaScript frameworks.
When to Use
- Building modern Rails 7+ applications with Hotwire (Turbo, Stimulus)
- Implementing real-time features with Turbo Streams and Action Cable
- Migrating legacy Rails apps to modern Rails patterns and conventions
- Building API-first Rails applications with JSON:API or GraphQL
- Optimizing Rails application performance (database queries, N+1, caching)
- Implementing complex Rails patterns (Service Objects, Form Objects, Query Objects)
- Integrating Rails with modern frontend tools (Import Maps, esbuild, Vite)
Quick Start
Invoke this skill when:
- Building Rails 7+ apps with Hotwire/Turbo/Stimulus
- Implementing real-time features (Turbo Streams, Action Cable)
- Migrating legacy Rails to modern patterns
- Building API-first Rails (JSON:API, GraphQL)
- Optimizing performance (N+1, caching, eager loading)
- Using Rails patterns (Service Objects, Form Objects, Query Objects)
Do NOT invoke when:
- Only frontend development needed → Use frontend-developer or react-specialist
- Database-specific optimization → Use database-optimizer or postgres-pro
- Pure API design without Rails → Use api-designer
- DevOps/deployment only → Use devops-engineer
Core Capabilities
Rails 7+ Modern Features
- Hotwire: Turbo, Stimulus, and dynamic HTML updates without JavaScript frameworks
- Import Maps: JavaScript dependency management without build tools
- Rails 7 Action Text: Rich text editing with modern UI
- Encrypted Credentials: Enhanced security for sensitive data
- Async Query Loading: Improved database query performance
- Multi-DB Support: Primary/replica database configurations
- Parallel Testing: Faster test execution across processes
- Async Action Mailer: Non-blocking email delivery
Hotwire Stack
- Turbo Drive: Faster page navigation with automatic page caching
- Turbo Frames: Partial page updates without full reloads
- Turbo Streams: Real-time updates over WebSocket or SSE
- Stimulus Controllers: Structured client-side JavaScript behavior
- Turbo Morph: Smart DOM diffing for minimal re-renders
Modern Rails Patterns
- Service Objects: Extract business logic from controllers
- Query Objects: Complex database queries as reusable objects
- Form Objects: Handle complex form logic and validation
- Decorators: Presentational logic separation
- View Components: Reusable UI component architecture
- API Resources: Consistent API response formatting
Decision Framework
Rails Feature Selection
Rails Development Decision
├─ Need real-time updates
│ ├─ User-specific updates → Turbo Streams + Action Cable
│ ├─ Broadcast to multiple users → Action Cable channels
│ └─ Simple form responses → Turbo Streams over HTTP
│
├─ Frontend architecture
│ ├─ Minimal JS, server-rendered → Hotwire (Turbo + Stimulus)
│ ├─ Complex client-side logic → Rails API + React/Vue
│ └─ Hybrid approach → Turbo Frames for islands of interactivity
│
├─ Database strategy
│ ├─ Read-heavy workload → Multi-DB with read replicas
│ ├─ Complex queries → Query Objects + proper indexing
│ └─ Caching needed → Russian doll caching + fragment caching
│
└─ Code organization
├─ Fat models → Extract Service Objects
├─ Complex validations → Form Objects
└─ Business logic in controllers → Move to services
Performance Optimization Matrix
| Issue | Solution | Implementation |
|---|---|---|
| N+1 queries | Eager loading | includes(:association) / preload |
| Slow counts | Counter caches | counter_cache: true on associations |
| Repeated queries | Fragment caching | cache @object do blocks |
| Large datasets | Pagination | Kaminari / Pagy gems |
| Slow API responses | JSON caching | stale? / fresh_when |
Best Practices
Rails 7+ Features
- Hotwire First: Use Turbo/Stimulus before reaching for JS frameworks
- Import Maps: Manage JS dependencies without complex bundlers
- Async Query Loading: Leverage parallel query execution
- Multi-DB: Use read replicas for read-heavy workloads
Code Organization
- Service Objects: Extract business logic from controllers
- Query Objects: Encapsulate complex database queries
- Form Objects: Handle complex form validation logic
- View Components: Create reusable, testable UI components
Performance
- Eager Loading: Always use includes/preload for associations
- Counter Caches: Pre-calculate counts for associations
- Caching Strategy: Implement multi-level caching
- Database Indexes: Add indexes based on query patterns
Testing
- System Tests: Use for critical user journeys
- Component Tests: Test View Components in isolation
- Request Tests: Test API endpoints comprehensively
- Model Tests: Test business logic at unit level
Anti-Patterns
Architecture Anti-Patterns
- Fat Controllers: Business logic in controllers - use Service Objects and POROs
- Massive Models: Models handling too many responsibilities - extract concerns
- Callback Spaghetti: Complex callback chains - use service objects
- Skinny Controller, Fat Model: All logic in model - balance distribution
Database Anti-Patterns
- N+1 Queries: Not using eager loading - use includes/joins/preload
- Missing Indexes: Slow queries without proper indexes - analyze and add
- Counter Cache Miss: Repeated count queries - use counter caches
- Migrations Without Down: Non-reversible migrations - ensure reversibility
Performance Anti-Patterns
- Eager Loading Excess: Over-eager loading causing memory issues
- Missing Caching: No caching strategy - implement appropriate levels
- Render Bloat: Heavy view rendering - use fragments and caching
- Job Queue Backlog: No background job processing - use Active Job
Additional Resources
- Detailed Technical Reference: See REFERENCE.md
- Code Examples & Patterns: See EXAMPLES.md