Ruby on Railsのディレクトリ構造を詳しく解説します!

Ruby on Railsでは「rails new アプリケーション名」で簡単にWebアプリケーションを生成することができます。

上記のコマンドでRuby on Rails を動かすコンポーネントを含む様々なディレクトリが生成されますが、構造が複雑でそれぞれどのようなものか理解するのが難しいかと思います。

このページではRailsでWebアプリケーションを開発を進めていく上で生成されたディレクトリ、ファイルがどのようなものか解説していきます。

ディレクトリやファイルをどのような場面で使うのか、どのような役割を担っているのかを意識しながら、読むと覚えやすいかと思います。

最後まで読んで頂けたら、幸いです。

Ruby on Railsでは「rails new アプリケーション名」で簡単にWebアプリケーションを生成することができます。

ここでは生成されたディレクトリがどのようなものか紹介していきます。

Webアプリケーションのディレクトリをまず始めに見ていきましょう。

以下はRailsのディレクトリ構造です。

Webアプリケーションを開発する時、app、config、dbのディレクトリはよく使用するので注意して見ていきましょう。

それでは詳しく内容を見ていきましょう。

app

appではcontroller、model、viewといったアプリケーションに関するものを管理しています。

bin

binではWebアプリケーション起動時に使用するスクリプトファイルを管理しています。

config

configではルーティングやデータベースなどの設定ファイルを管理しています。

db

dbではデータベース関連の設定情報を管理しています。

このディレクトリにはデータベースのスキーマファイル(schema.rb)やマイグレーションファイル(テーブルなどの作成情報が入ったファイル)が配置されています。

lib

libは全体で共有するライブラリを管理するためのディレクトリです。

.git

.gitはバージョン管理用のツールgitをインストールした環境で生成されるgitが利用するディレクトリとなっています。

log

Webアプリケーション実行時のログファイルを保持するディレクトリとなっています。

public

画像などの静的なファイル、静的なページなど静的なリソースを置くためのディレクトリとなっています。

アセットパイプライン機能の「rails assets:precompile」コマンドによってプリコンパイルされたアセットは「public/assets」の中に置かれます。

storage

Rails5.2から導入されたActive Storageのローカルストレージとして用意されています。

test

テスト用のコードファイル、テストデータなどを管理するためのディレクトリとなっています。

tmp

稼働中の一時的な情報を管理するためのディレクトリとなっています。

ここではキャシュ、プロセスID、セッションなどを管理しています。

vendor

第三者によって開発されたコードを配置する場合に使用するディレクトリとなっています。




2.ファイル

次にWebアプリケーション直下に生成されたファイルを紹介します。

.gitignore

gitのバージョン管理対象から外すファイルを記述するファイルとなっています。

.ruby-version

Webアプリケーションで使用しているrubyのバージョンを管理するファイルとなっています。

config.ru

Rackがrailsサーバー起動のために使用する設定ファイルとなっています。

Gemfile

Railsで使用するGemパッケージの設定ファイルとなっています。

依存関係にあるパッケージとバージョンを指定することができます。

※Gemパッケージとはrubyが使用するパッケージソフトで、gemというツールを使用してパッケージを管理しています。

Gemfile.lock

「bundle install」されたGemパッケージの依存関係を管理するためのファイルとなっています。

一度「bundle install」されたバージョンは「bundle update」しない限り整合性が維持されます。

※bundle installとはGemfileに定義されたGemパッケージを組み込むためのコマンドです。bundle installを実行するとGemfile.lockというファイルが生成されます。

package.json

nodeのパッケージ管理ツールnpmを使用する場合に必要なファイルとなっています。

Rakefile

Rakeコマンドの実行を管理するためのファイルとなっています。

README.md

起動実行手順を記述する説明用のファイルとなっています。




3.Ruby on Railsを学ぶことができるオススメの教材

Ruby on Railsを学習している皆様にオススメの教材をご紹介させていただきます。

現場で使える Ruby on Rails 5速習実践ガイド

以下の本はRuby on Railsの学習を一通り終えてある程度知識を身につけた方にオススメしたい本です。

 

現場で使える Ruby on Rails 5速習実践ガイド」は現場で実際にどのように使われているのかという視点も交えて解説されています。

そのため、初心者の方が次のステップに進むために最適な本となっていますので、オススメです。

これらの本で是非学習を進めてみてはいかがでしょうか?

レベル別におすすめの本も紹介していますので、どのような本がオススメか知りたい方はこちらもご覧になって下さい。

[2022年最新版] Ruby on Railsを学ぶことができるおすすめの本/参考書

Udemy

UdemyではRuby on Railsを学ぶことができる講座を多数取り扱っています。

以下の記事でRuby on Railsを学ぶことができるオススメの講座をまとめていますので、よかったらご覧になって下さい。

[2021年最新版] Udemy(ユーデミー) おすすめのRuby on Rails講座

プログラミングスクール

TechAcademyWebCampCodeCampTech CampなどでRuby on Railsを学ぶことができます。

それぞれ無料体験も行っているので、どのようなものか試してみるのもいいでしょう。

以下の記事で各プログラミングスクールをまとめているのでこちらもよかったらご覧になってください。

いくら? 悪評は? TechAcademy(テックアカデミー)とは? 口コミもまとめてみました! [受講した方の感想アリ!] DMM WEBCAMP SKILLSとは? 料金・口コミをまとめてみた! [課題が難しい?] 初心者向け! CodeCamp(コードキャンプ)とは? 特徴・料金・口コミをまとめてみました! [感想・体験談アリ!] 実際にTech Camp(テックキャンプ)のプログラミング教養でプログラミングをやってみた! 【体験談】Tech Camp(テックキャンプ)プログラミング教養の学習内容は? 働きながらTECH CAMP(テックキャンプ)で学ぶことはできるのか? 結論:可能です! TECH CAMP(テックキャンプ)ではどのような言語・技術を学ぶことができるの? TECH CAMP(テックキャンプ)の受講料はどのくらい? 安く通う方法もお話します! [体験談・感想あり!]TECH CAMP(テックキャンプ)でどのようなスキルが身につくの?




4.まとめ

Webアプリケーションのディレクトリ、ファイルをいきなりすべて覚えるのは難しいかと思うので、開発を進めながら、徐々に覚えていくといいかと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です