📏

Convention over Configuration

Railsの核心哲学 — 規約が設定より優先

Convention over Configuration(CoC)はRailsの最も重要な哲学です。開発者がいちいち設定する代わりに、Railsが定めた規約に従えば全てが自動的に接続されます。

核心規約:

  • モデル名 Post → テーブル名 posts(複数形、snake_case)

  • コントローラ PostsController → ファイル app/controllers/posts_controller.rb

  • ビュー PostsController#showapp/views/posts/show.html.erb

  • 外部キー user_idbelongs_to :user

  • 主キーは常に id、自動生成フィールドは created_atupdated_at

Java/Springのようなフレームワークでは XMLやアノテーションで一つ一つマッピングが必要ですが、Railsでは名前を合わせるだけです。おかげで新プロジェクト開始時に設定に時間を使わず、すぐに機能開発に集中できます。

ただし、規約を知らないと「魔法のように」感じてデバッグが難しくなることがあるため、規約を正確に理解することが重要です。

キーポイント

1

rails generate model Post title:string content:text → Postモデル + postsマイグレーション自動生成

2

rails generate controller Posts index show → PostsController + ビューファイル自動生成

3

resources :posts 1行で7つのRESTfulルート自動生成

4

Post.find(1) → SELECT * FROM posts WHERE id = 1 自動変換(テーブル名規約)

5

render省略時action名と同じビューファイルを自動レンダリング(show → show.html.erb)

6

規約から外れたい時のみ明示的設定(self.table_name = "my_posts")

メリット

  • 初期設定時間を大幅に節約
  • コード一貫性を自動保証
  • ファイル位置を見れば役割がわかる
  • エコシステム全体が同じ規約を使用

デメリット

  • 規約を知らないと「魔法」のように感じる
  • 規約から外れるとかえって複雑になる
  • 他フレームワーク経験者には最初混乱
  • 暗黙的動作がデバッグを困難にしうる

ユースケース

プロジェクト初期設定の最小化 チーム間コード一貫性維持 コードレビュー時パターン予測可能 新メンバーのオンボーディング速度向上