Ruby on Railsの基本ディレクトリとファイルについて(1) アプリケーション直下のディレクトリとファイル

Ruby on Railsの基本のディレクトリとファイルに関する疑問

フィヨルドブートキャンプの課題に対するレビューで、「不要なファイルやディレクトリ、コメントは消そう」という指摘を受けた。

不要なものがあればあるほどバグの温床になるし、可読性も悪くなるから、必要最低限のファイルやフォルダ、コードのみでアプリケーションを構成するべきなのは想像に難くない。

「よ〜し、じゃあ要らなそうなものはジャンジャン消していくぞ❗️😊😊😊」

と意気込んですぐ、重大なことに気づく。

「どれが必要なものかがわからん...。と、いうより、よくわからないディレクトリとかファイルがいっぱいいる...。」

そこで、Railsの理解をより深める目的で、

$ Rails new アプリケーション名

を実行すると生成される基本ディレクトリとファイルについて調べた。

なお、使用しているRubyRuby on Railsのバージョンは以下の通り。

Ruby : 3.0.1

Ruby on Rails : 6.1.3.1

Ruby on Railsの基本ディレクトリとファイル

始めに

手始めに手元のターミナルで、

$ Rails new testapp

としてみる。

生成されるディレクトリとファイルはこんな感じ。

f:id:naomichi-h:20210624083340p:plain

これらを一個ずつ調べる。

アプリケーション直下に生成されるディレクト

.git

gitが利用するディレクトリ。バージョン管理のためのファイル等が入ってる。 gitをインストールしている環境だと自動で生成される。

app

アプリケーションに関する情報を管理するディレクトリ。 開発するアプリケーションのモデル、コントローラー、ビューといった、構成要素に関するディレクトリとファイルが入る。

bin

アプリケーションの起動などに使用するスクリプトファイルを管理するディレクトリ。

config

実行環境に関する設定情報が入ったディレクト

db

データベース関連の設定情報を管理するディレクトリ。

データベースのスキーマファイル(schema.rb)が存在する。 また、デフォルトのデータベース(SQLite3)のデータファイル(~.sqlite3)は、デフォルトでこのディレクトリに生成される。

また、dbディレクトリには、マイグレーションファイルが入ったmigrateディレクトリが配置されている。

lib

複数のアプリケーションで共有するライブラリ(モジュール)を管理するためのディレクトリ。

log

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

public

アップロード画像(Active Storageの場合を除く)といった静的なファイル、静的なトップページなど、静的な公開リリーズを置くためのディレクトリ。

storage

Active Storageのデフォルトのローカルストレージ。

test

Rails標準の各種テスト用のコードファイルやテストデータなどを管理するためのディレクトリ。

vendor

サードパーティ製のコードや素材を配置する場合に使用するディレクトリ。

アプリケーション直下に生成されるファイル

.gitignore

gitのバージョン管理対象から外すべきファイルを記述する。

.ruby-version

アプリケーションで使用しているRubyのバージョンを管理するファイル。

config.ru

RackがRailsサーバー起動のために使用する設定ファイル。

Gemfile

Railsで使用するGemパッケージの設定ファイル。

Gemfile.lock

bundle installされたGemパッケージの依存関係を管理するファイル。

package.json

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

Rakefile

Rakeタスクコマンドの実行を管理するためのファイル。 lib/tasksに独自のRakeタスクを作成することで、rakeタスクとして実行が可能。

README.md

アプリケーションの説明用ファイル。

出典

小餅 良介. 独習Ruby on Rails (Japanese Edition)