Ruby on Railsの基本ディレクトリとファイルについて(1) アプリケーション直下のディレクトリとファイル
Ruby on Railsの基本のディレクトリとファイルに関する疑問
フィヨルドブートキャンプの課題に対するレビューで、「不要なファイルやディレクトリ、コメントは消そう」という指摘を受けた。
不要なものがあればあるほどバグの温床になるし、可読性も悪くなるから、必要最低限のファイルやフォルダ、コードのみでアプリケーションを構成するべきなのは想像に難くない。
「よ〜し、じゃあ要らなそうなものはジャンジャン消していくぞ❗️😊😊😊」
と意気込んですぐ、重大なことに気づく。
「どれが必要なものかがわからん...。と、いうより、よくわからないディレクトリとかファイルがいっぱいいる...。」
そこで、Railsの理解をより深める目的で、
$ Rails new アプリケーション名
を実行すると生成される基本ディレクトリとファイルについて調べた。
なお、使用しているRubyとRuby on Railsのバージョンは以下の通り。
Ruby : 3.0.1
Ruby on Rails : 6.1.3.1
Ruby on Railsの基本ディレクトリとファイル
始めに
手始めに手元のターミナルで、
$ Rails new testapp
としてみる。
生成されるディレクトリとファイルはこんな感じ。
これらを一個ずつ調べる。
アプリケーション直下に生成されるディレクトリ
.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)