Railsディレクトリ構造を理解しよう!app・config・db・lib・binの役割を初心者向けに解説
生徒
「Railsでアプリを作ったら、いろんなフォルダがあるんですが、どこに何があるかよく分かりません……。」
先生
「Railsでは、最初からファイルやフォルダが整理された状態で作られるんですよ。各フォルダには意味があるんです。」
生徒
「とくに app や config、db とか lib って、何を入れるものなんですか?」
先生
「それじゃあ、Railsの主要なフォルダの役割を一つずつ、やさしく説明していきますね!」
1. appフォルダ:アプリの心臓部分
appフォルダは、Railsアプリケーションのメインの処理をまとめる場所です。実際の機能を作るのはこの中です。
中には次のようなサブフォルダがあります:
controllers(コントローラ)…画面を切り替える司令塔models(モデル)…データや計算を扱う脳の部分views(ビュー)…画面を作るテンプレートhelpers…HTML表示のサポート機能
たとえるなら、appは家の中身で、部屋ごとに役割が分かれている感じです。
2. configフォルダ:設定をまとめる場所
configフォルダには、Railsアプリの設定情報が入っています。どの言語で表示するか、どのデータベースを使うか、などを指定します。
よく使うファイル:
routes.rb…URLと処理のつなぎ方を決めるenvironments/…開発・本番など環境ごとの設定initializers/…アプリ起動時に読み込む設定
ここはアプリ全体のルールブックのような場所です。
3. dbフォルダ:データベース関係の保管庫
dbフォルダは、アプリで使うデータベース関連のファイルが入っています。
schema.rb…データベースの構成を記録migrate/…テーブルの作成・変更の指示書seeds.rb…初期データを入れるためのファイル
たとえば「ユーザー一覧を表示したい」と思ったら、その情報はdbのデータベースから取り出すわけです。
このフォルダはデータの倉庫と設計図のような役割です。
4. libフォルダ:オリジナルの部品置き場
libフォルダは、自分で作ったカスタム処理やツールを置いておく場所です。
たとえば「複雑な計算処理」「外部APIとの通信」など、モデルやコントローラに書くには重すぎる処理を分けて保管します。
必要に応じて使うので、初心者のうちは空っぽのままでも大丈夫です。
職人の道具箱のような存在です。
5. binフォルダ:コマンド実行用のスイッチ
binフォルダには、Railsの動作に必要なコマンドの実行ファイルが入っています。
たとえば次のようなファイルがあります:
bin/rails…Railsコマンドの実行bin/setup…開発環境の初期設定bin/dev…開発用サーバーの起動
このフォルダはアプリを動かすスイッチのような場所です。
6. その他のフォルダの簡単紹介
ここでは紹介しきれなかったその他のフォルダを簡単に説明します。
log…エラーや動作記録を残すpublic…HTMLや画像など、外から直接見えるファイルstorage…ファイルアップロードの保存先testやspec…アプリのテストを入れる場所tmp…一時的なファイル(起動中に使う)
覚えるのが大変そうですが、最初はappとconfigだけ理解すれば大丈夫です。
7. ディレクトリ構成を一覧で見てみよう
以下は、Railsアプリのよくある構成です。
myapp/
├── app/
├── bin/
├── config/
├── db/
├── lib/
├── log/
├── public/
├── storage/
├── test/ または spec/
├── tmp/
ファイルやフォルダが整理されているおかげで、他の人が作ったRailsアプリも、構造を見ればすぐに理解しやすくなっています。
まとめ
Railsディレクトリ構造を理解することの大切さ
今回の記事では、Railsアプリケーションを作成したときに自動生成されるディレクトリ構造について、app、config、db、lib、binといった主要フォルダの役割を中心に確認してきました。Railsは「設定より規約」という考え方を大切にしており、あらかじめ決められた場所に、決められた役割のファイルを配置することで、開発効率と可読性を高めています。ディレクトリ構造を理解することは、Rails開発の基礎であり、エラー対応や機能追加をスムーズに進めるための土台となります。
appフォルダは、Railsアプリの中心となる場所で、コントローラ、モデル、ビューといったMVC構造の主要要素が集約されています。どこに何を書けばよいのか迷ったときは、まずappフォルダの中を確認することで、多くの疑問が解決します。configフォルダは、アプリ全体の動作を制御する設定ファイルが集まる場所で、routes.rbや環境ごとの設定を通して、Railsアプリの振る舞いを細かく調整できます。
dbフォルダはデータベース関連の情報を管理する重要な場所で、マイグレーションやスキーマ情報、初期データの定義などが保存されています。Railsでは、データベース構造もコードとして管理するため、このフォルダの理解は非常に重要です。libフォルダは、自分で作成した独自処理や共通ロジックを整理して置くための場所で、アプリが成長するにつれて活躍の場が増えていきます。binフォルダは、Railsコマンドや開発用スクリプトを実行するための入口となり、日々の開発作業を支える存在です。
ディレクトリ構造を意識した開発のポイント
Railsのディレクトリ構造を意識せずに開発を進めると、「どこに何を書けばいいのか分からない」「ファイルが増えて混乱する」といった状況に陥りがちです。しかし、役割ごとに整理された構成を理解していれば、コードの見通しが良くなり、他人が書いたRailsアプリも読みやすくなります。これはチーム開発や実務において非常に大きなメリットです。
たとえば、新しい機能を追加するときに、画面表示に関する処理はviews、データ処理はmodels、画面遷移やリクエスト処理はcontrollersといったように、自然と置き場所を判断できるようになります。Rails初心者のうちは、完璧に覚えようとせず、「この処理はどの役割に近いか」を考えることが大切です。
構造を確認するための簡単な例
Railsアプリの基本構造は、次のように整理されています。この形を何度も目にすることで、ディレクトリ構成が自然と身についていきます。
myapp/
├── app/
│ ├── controllers/
│ ├── models/
│ ├── views/
├── config/
├── db/
├── lib/
├── bin/
この一覧を見て「どのフォルダが何を担当しているのか」を説明できるようになれば、Railsの基礎理解はかなり進んでいると言えるでしょう。
生徒
「Railsのフォルダって最初は多くて混乱していましたが、それぞれにちゃんと意味があると分かって安心しました。特にappフォルダが中心なんですね。」
先生
「そうですね。Railsは最初から整理された構造を用意してくれているので、その流れに乗るのが一番です。迷ったら、この処理はどんな役割かを考えてみましょう。」
生徒
「configやdbの役割も分かってきました。設定とデータベースが分かれているのは、後から見直すときにも便利そうですね。」
先生
「その通りです。Railsのディレクトリ構造を理解することは、エラー解決や機能追加のスピードアップにつながります。焦らず、使いながら少しずつ覚えていきましょう。」
生徒
「まずはappとconfigを意識して開発してみます。Railsの全体像が少し見えてきました。」