Railsモデル設計をClaude Codeで効率化するプロンプト例10選

ClaudeCode

Railsモデルの設計は、アプリのデータ構造やビジネスロジックを支える重要な工程です。しかし、カラム設計や関連付け、バリデーションの記述など、定型作業が多く時間がかかるのも事実。
Claude Codeを活用すれば、自然言語で要件を伝えるだけで、モデル定義からマイグレーション、テストコードまで自動生成できます。
この記事では、Claude Codeを使ってRailsモデル設計を効率化する具体的なプロンプト10選を紹介します。

 Claude Codeでのモデル設計のメリット

  • カラム設計を自然言語で依頼できる
  • 関連付け(has_many, belongs_toなど)を自動提案
  • バリデーションやコールバックまで生成可能
  • マイグレーション・モデル・テストをまとめて作成できる

モデル設計におけるClaude Codeの得意分野

Claude Codeは「要件を文章で説明すると、それに応じたRailsコードを返す」ことが得意です。
例えば「UserとPostの関係を1対多にして、Userには名前とメールアドレス、Postにはタイトルと本文を持たせる」と依頼すると、以下を一度に生成します。

  • rails generate model コマンド
  • マイグレーションファイル
  • モデルの関連付け
  • バリデーション

実践!モデル設計プロンプト例10選

例1:基本的なモデル設計

RailsモデルでUserを作成し、name:string, email:stringを持たせてください。
emailは一意性制約を付けてください。

例2:関連付け(1対多)

UserとPostモデルを1対多で関連付けてください。
Userにはname, email、Postにはtitle, bodyを持たせます。

例3:関連付け(多対多)

UserGroupモデルを多対多で関連付けてください。
中間テーブルはMembershipとします。

例4:日付・時刻カラムの利用

Eventモデルを作成し、title, start_time, end_timeを持たせてください。
start_timeとend_timeはdatetime型で作成してください。

例5:バリデーション追加

Productモデルを作成し、name, priceを持たせます。
priceは数値のみ許可し、0以上であるバリデーションを追加してください。

例6:列挙型(enum)の利用

Taskモデルを作成し、statusカラムをenumで管理してください。
statusは[:pending, :in_progress, :done]です。

例7:外部キー制約付き

Commentモデルを作成し、Postへの外部キー制約を付けてください。

例8:デフォルト値の設定

Orderモデルを作成し、status:stringを持たせます。
デフォルト値は"pending"にしてください。

例9:スコープの追加

Articleモデルを作成し、published:booleanカラムを追加してください。
さらに、publishedのみを取得するスコープを追加してください。

例10:モデルとテスト生成

Customerモデルを作成し、name, emailを持たせます。
RSpecのモデルテストも生成してください。

設計後にすべき確認ポイント

Claude Codeで生成したモデルコードは、そのまま動くことが多いですが、以下の点は必ず確認しましょう。

  • 外部キーやインデックスが正しく付与されているか
  • バリデーションが要件通りか
  • マイグレーション後にdb:migrateがエラーなく通るか
  • テストコードが十分にカバーしているか

まとめ

Claude Codeを使えば、Railsモデル設計は「文章で要件を伝える → コードが生成される」というシンプルなフローに変わります。
次回は「Claude CodeとRSpecでRailsテストを書く最短ルート」を解説します。

コメント

タイトルとURLをコピーしました