jpskill.com
🛠️ 開発・MCP コミュニティ

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本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o rails-expert.zip https://jpskill.com/download/6724.zip && unzip -o rails-expert.zip && rm rails-expert.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6724.zip -OutFile "$d\rails-expert.zip"; Expand-Archive "$d\rails-expert.zip" -DestinationPath $d -Force; ri "$d\rails-expert.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して rails-expert.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → rails-expert フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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