Ruby on Railsの基本ディレクトリとファイルについて(2) appディレクトリとconfigディレクトリ内のファイルとディレクトリ
最初に
この記事はRuby on Railsの基本ディレクトリとファイルについて(1) アプリケーション直下のディレクトリとファイル - らせんびよりの続きです✨
appディレクトリ内のファイルとディレクトリ
assets
Railsアセットファイルを管理するディレクトリ。 以下のような、ビューに組み込む HTML以外 の要素を配置する。
- images : 背景図やマークなどのシステム画像を配置する
- javascripts : Javascriptファイルを配置するためのディレクトリ。マニフェストファイル(application.js)によって、各.jsファイルのHTMLへの一括組み込みが管理される。
- stylesheets : スタイルシート用のCSSファイル(SCSS含む)を配置するためのディレクトリ。マニフェストファイル(application.css)によって、各CSSファイルのHTMLへの一括組み込みが管理される。
controllers
コントローラークラスを管理するディレクトリ。 各コントローラーの継承元となるApplicationController(application_controller.rb)が生成される。 また、controllersディレクトリには、以下のディレクトリが配置されている。
- concerns : コントローラー共通のコードを管理するためのディレクトリ
helpers
ヘルパーモジュールを管理するディレクトリ。 共通のヘルパーメソッドを提供するためのApplicationHelper(application_helper.rb)が生成される。
jobs
ジョブクラスを管理するディレクトリ。 各ジョブの継承元となるApplicationJob(application_job.rb)がデフォルトで生成される。
mailers
メーラークラス(メール制御クラス)を管理するディレクトリ。 各メーラーの継承元となるApplicationMailer(application_mailer.rb)がデフォルトで生成される。
models
モデルクラスを管理するディレクトリ。 各モデルの継承元となるApplicationRecord(application_record.rb)がデフォルトで生成される。 modelsディレクトリには、さらに以下のディレクトリが配置されている。
- concerns : モデル共通コードを管理するディレクトリ
views
ビューテンプレートを管理するディレクトリ。 ビューの共通フレームであるレイアウトを提供するためのlayoutsディレクトリがデフォルトで生成される。
viewディレクトリには、以下のディレクトリが配置されている。
layouts : 共通のレイアウトを管理するディレクトリ。ビューテンプレート用のapplication.html.erbファイルとメーラー用のmailer.html.erbファイル、mailer.text.erbファイルがデフォルトで生成される。
各コントローラー用のディレクトリ : 各コントローラーに対応するビューテンプレートを管理する。ここで管理されるテンプレートは、共通のレイアウトに埋め込まれてHTML変換される。
configディレクトリ内のファイルとディレクトリ
environments
実行環境(開発用のdevelopment、テスト用のtest、運用用のproductionなど)ごとの設定情報を管理するディレクトリ。Railsサーバー、Railsコンソールを起動する時にどの環境にするかを指定することができるが、何も指定しない場合(デフォルト)は、developmentモードになる。
initialisers
アプリケーションで使用する様々な初期化情報の設定ファイルを管理するディレクトリ。
## locales ロケールファイルを管理するディレクトリ。
application.rb
各実行環境(開発/テスト/運用)に共通の設定を行うファイル。ただし environmentsディレクトリ内の個別設定が優先される。 また、initializersディレクトリ内にある全ての.rbファイルの初期化情報を組み込む役割を担う。
boot.rb
Gemfileの場所を管理し、起動時にGemfileの一覧からgemのセットアップを行うファイル。
cable.yml
Action Cable用の、環境別のデフォルトキューアダプターを管理するためのファイル。
credentials.yml.enc
暗号化キー(secret_key_baseなど)を管理するためのファイル。 このファイル自体も暗号化されている。
内容確認及び編集もできるが、このファイルは通常Railsが自動的に管理するもので、特別な理由がない限り触るべきでない。
database.yml
各実行環境(開発/テスト/運用)について、データベースの環境設定を行うためのファイル。rails new
コマンド時、ここで指定されたデータベースが設定される。
environment.rb
Railsサーバーの起動時に、application.rbの初期化を行うファイル。
master.key
credentials.yml.encの情報を復号するためのキーが保存されているファイル。
puma.rb
Puma(デフォルトRailsサーバー)の実行環境を設定するためのファイル
routes.rb
ルーターの定義ファイル。 HTTPリクエストをコントローラーのアクションに対応づけるためのルート情報を管理する。
spring.rb
Springの制御の設定を行うファイル。 Springは、Railsアプリケーションの初回起動時に必要なライブラリをロードする役割を担い、効率的な開発を行えるようにするためのプログラム。
storage.yml
Action Storageの環境設定を行うためのファイル。
終わりに
うーむ。 多い。
いや、できることに対して考えるとめちゃめちゃ少ないのだけど。
知らぬ間にこんなにたくさん生成されていたんだなあ...。
まあぶっちゃけあんまりピンときていないファイルとかディレクトリもあるんだけど、少なくともappディレクトリの中身については割と理解できた...気がする。