Skip to content

Ruby on Rails で使う

## プロジェクト概要
[プロジェクトの説明]
## 技術スタック
- Ruby 3.3
- Rails 7.2
- PostgreSQL
- Hotwire (Turbo + Stimulus)
- RSpec(テスト)
## Railsの規約
- Fat Model, Skinny Controller を意識する
- Service Object は app/services/ に置く
- バリデーションは Model に書く
- N+1問題に注意し、includes/eager_loadを使う
## テスト方針
- 全てのモデルにユニットテストを書く
- コントローラテストは書かない(SystemSpecで代替)
- FactoryBotを使う
## 禁止事項
- raw SQLを直接書かない(ActiveRecordを使う)
- コントローラにビジネスロジックを書かない

CLAUDE.md: プロジェクトのルートに置くClaude Code専用の設定ファイル。プロジェクト固有のルールやコンテキストを記述する。

モデルとマイグレーションを作る

Section titled “モデルとマイグレーションを作る”
Postモデルを作って。カラムはtitle(string)、body(text)、published_at(datetime)、user_id(references)。バリデーションとアソシエーションも含めて。
このコントローラのアクションでN+1が起きている。includesを使って解消して。
def index
@posts = Post.all
end
app/models/user.rb のバリデーションのRSpecテストを書いて。FactoryBotを使う。
ユーザー登録処理を UserRegistrationService として app/services/ に切り出して。
メール送信とウェルカムポイント付与を含める。

マイグレーション: データベースのスキーマ(テーブル構造)を安全に変更するための手順書。プロンプト: AIへの指示文。Claude Codeへの指示の質がそのまま出力の質に影響する。
Railsコンソールで試したいクエリを教えて。
「直近30日で最もいいねが多かった投稿TOP10」を取得したい。

Claude Codeがコンソール用のコードを出力してくれる。動作確認後に実際のコードに組み込む。

マイグレーションファイルのレビュー

Section titled “マイグレーションファイルのレビュー”
このマイグレーションファイルを見て、本番環境で安全に実行できるか確認して。
NOT NULL制約の追加やカラムの型変更が含まれている場合は特に注意して。

belongs_to のデフォルト required: Rails 5以降、belongs_to はデフォルトで必須。既存のデータがNULLだとバリデーションエラーが出る。Claude Codeに「この関連の必須チェックを適切に設定して」と相談する。

Strong Parameters の漏れ: 新しいカラムを追加したのにformが保存されない場合、多くはStrong Parametersの更新漏れ。「このカラムを追加したのでStrong Parametersも更新して」と伝える。