カテゴリ: Rails 更新日: 2025/12/25

Railsディレクトリ構造を理解しよう!app・config・db・lib・binの役割を初心者向けに解説

ディレクトリ構造を理解:app/ config/ db/ lib/ bin/ 主要フォルダ解説
ディレクトリ構造を理解:app/ config/ db/ lib/ bin/ 主要フォルダ解説

先生と生徒の会話形式で理解しよう

生徒

「Railsでアプリを作ったら、いろんなフォルダがあるんですが、どこに何があるかよく分かりません……。」

先生

「Railsでは、最初からファイルやフォルダが整理された状態で作られるんですよ。各フォルダには意味があるんです。」

生徒

「とくに app や config、db とか lib って、何を入れるものなんですか?」

先生

「それじゃあ、Railsの主要なフォルダの役割を一つずつ、やさしく説明していきますね!」

1. appフォルダ:アプリの心臓部分

1. appフォルダ:アプリの心臓部分
1. appフォルダ:アプリの心臓部分

appフォルダは、Railsアプリケーションのメインの処理をまとめる場所です。実際の機能を作るのはこの中です。

中には次のようなサブフォルダがあります:

  • controllers(コントローラ)…画面を切り替える司令塔
  • models(モデル)…データや計算を扱う脳の部分
  • views(ビュー)…画面を作るテンプレート
  • helpers…HTML表示のサポート機能

たとえるなら、appは家の中身で、部屋ごとに役割が分かれている感じです。

2. configフォルダ:設定をまとめる場所

2. configフォルダ:設定をまとめる場所
2. configフォルダ:設定をまとめる場所

configフォルダには、Railsアプリの設定情報が入っています。どの言語で表示するか、どのデータベースを使うか、などを指定します。

よく使うファイル:

  • routes.rb…URLと処理のつなぎ方を決める
  • environments/…開発・本番など環境ごとの設定
  • initializers/…アプリ起動時に読み込む設定

ここはアプリ全体のルールブックのような場所です。

3. dbフォルダ:データベース関係の保管庫

3. dbフォルダ:データベース関係の保管庫
3. dbフォルダ:データベース関係の保管庫

dbフォルダは、アプリで使うデータベース関連のファイルが入っています。

  • schema.rb…データベースの構成を記録
  • migrate/…テーブルの作成・変更の指示書
  • seeds.rb…初期データを入れるためのファイル

たとえば「ユーザー一覧を表示したい」と思ったら、その情報はdbのデータベースから取り出すわけです。

このフォルダはデータの倉庫と設計図のような役割です。

4. libフォルダ:オリジナルの部品置き場

4. libフォルダ:オリジナルの部品置き場
4. libフォルダ:オリジナルの部品置き場

libフォルダは、自分で作ったカスタム処理やツールを置いておく場所です。

たとえば「複雑な計算処理」「外部APIとの通信」など、モデルやコントローラに書くには重すぎる処理を分けて保管します。

必要に応じて使うので、初心者のうちは空っぽのままでも大丈夫です。

職人の道具箱のような存在です。

5. binフォルダ:コマンド実行用のスイッチ

5. binフォルダ:コマンド実行用のスイッチ
5. binフォルダ:コマンド実行用のスイッチ

binフォルダには、Railsの動作に必要なコマンドの実行ファイルが入っています。

たとえば次のようなファイルがあります:

  • bin/rails…Railsコマンドの実行
  • bin/setup…開発環境の初期設定
  • bin/dev…開発用サーバーの起動

このフォルダはアプリを動かすスイッチのような場所です。

6. その他のフォルダの簡単紹介

6. その他のフォルダの簡単紹介
6. その他のフォルダの簡単紹介

ここでは紹介しきれなかったその他のフォルダを簡単に説明します。

  • log…エラーや動作記録を残す
  • public…HTMLや画像など、外から直接見えるファイル
  • storage…ファイルアップロードの保存先
  • testspec…アプリのテストを入れる場所
  • tmp…一時的なファイル(起動中に使う)

覚えるのが大変そうですが、最初はappconfigだけ理解すれば大丈夫です。

7. ディレクトリ構成を一覧で見てみよう

7. ディレクトリ構成を一覧で見てみよう
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の全体像が少し見えてきました。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Railsアプリを作ると最初からあるフォルダの意味が分かりません。どんな役割がありますか?

Railsアプリには最初から決まったディレクトリ構造が用意されており、各フォルダにはそれぞれ異なる役割があります。たとえばappはアプリのメイン処理、configは設定、dbはデータベース関連、libは独自の処理、binはコマンド実行に使われます。
関連記事:
カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
データベース
データベース正規化とは?初心者でもわかるデータ重複を防ぐSQL設計の基本