Railsアプリのディレクトリ構成の理解

Railsアプリケーションのディレクトリ構成は、MVC(Model-View-Controller)アーキテクチャに基づいて設計されており、各役割ごとにディレクトリが明確に分かれています。ここでは、主要なディレクトリとその役割について詳しく説明します。


1. app/

アプリケーションの中核となるディレクトリで、MVC各コンポーネントが格納されています。

  • models/
    ビジネスロジックやデータベースとのやり取りを担うModelクラス(ActiveRecordモデル)を格納します。

  • views/
    HTMLテンプレート(.html.erb.html.hamlなど)を格納し、ユーザーに表示される内容を定義します。

  • controllers/
    リクエストを受け取り、適切な処理を実行してレスポンスを返すControllerクラスを格納します。

  • helpers/
    Viewで利用する補助的なメソッドを定義するヘルパークラスを格納します。

  • assets/
    JavaScript、CSS、画像などの静的ファイルを格納します。

  • channels/
    Action Cable(WebSocket)関連の処理を格納します。

  • jobs/
    Active Jobで定義するバックグラウンドジョブを格納します。

  • mailers/
    メール送信処理を行うクラスを格納します。


2. config/

アプリケーション全体の設定ファイルを格納します。

  • routes.rb
    URLルーティングの設定を行います。

  • environments/
    development.rbtest.rbproduction.rb により、各環境ごとの設定を記述します。

  • initializers/
    アプリケーション起動時に実行される初期化処理を記述したファイルを格納します。

  • database.yml
    データベース接続設定を記述します。


3. db/

データベース関連のファイルを格納します。

  • migrate/
    マイグレーションファイルを格納し、データベースのスキーマ変更を記述します。

  • schema.rb
    現在のデータベーススキーマの状態が反映されます。


4. bin/

Railsアプリケーションの起動スクリプトや管理コマンドが含まれます。


5. lib/

独自のライブラリコードやタスクなど、MVCに直接関係しないがアプリで使用する処理を定義します。

  • tasks/
    Rakeタスクを定義する場合に使用されます。


6. log/

アプリケーションの実行ログが保存されます。


7. public/

静的ファイル(例えば、404.htmlrobots.txtなど)が配置され、直接アクセス可能です。


8. test/ または spec/

テストコードを格納するディレクトリです。Railsデフォルトではtest/、RSpecを導入した場合はspec/を使用します。


9. tmp/

一時ファイル(キャッシュ、セッションなど)が保存されます。


10. vendor/

外部ライブラリ(Gem以外)のコードを格納するために使用します。


このように、Railsアプリのディレクトリ構成は役割ごとに明確に分かれており、規約に従うことで可読性・保守性が高くなるように設計されています。初学者にとっては最初にこの構成を理解することが、効率的な開発の第一歩です。

ChatGPT4o 生成日:2025/06/21