Ruby on Rails : railsのフォルダ、ファイルの意味について自分なりにまとめる
概要
Railsのフォルダ構成の意味がよくわかっていないので、とりあえず今の時点での理解を文章化してみる。 正直あまり自信ないので、もしも間違いがあればコメント等いただけるとありがたい。
Railsの各フォルダ、ファイルの意味
自明なものなど一部省略
|- app/ アプリケーションの具体的な機能がフォルダにまとめられている。
| |- assets/ HTMLに付随するCSSやJavaScriptや画像など。
| | |- config/ 多分JavaScript関連の設定。マニフェストファイルが入っている。
| | |- images/ 画像置き場。
| | |- stylesheets/ スタイルシート置き場。
| |- channels/ Action Cableのチャネルの記述。各ファイルの中身はControllerと同じような感じ。
| |- controllers/ データや入力を元に計算しつつ、modelとviewを接続する。
| | |- concern/ 複数のモデルで使いたいモジュールなどを置いておく。
| |- helpers/ 複数のviewで共通して使われるようなちょっとしたモジュール。
| |- javascript/ JavaScript置き場のようだが、Action CableとWebpackrが絡んでいるっぽい。
| |- jobs/ Active Jobによるジョブの定義(例えばアカウント生成したら確認メールを送るなど)。
| |- mailers/ メールを生成する際のコントローラにあたるもの。
| |- models/ モデルの定義。
| |- uploaders/ CarrierWaveによるアップロード機能の定義。
| |- views/ 画面上に表示するもの。
|- bin/ アプリケーションの起動、アップデート、デプロイのためのスクリプト。
|- config/ 各種設定ファイル。
|- config.ru Rackの設定ファイル。
|- db/ DBの定義。
|- lib/ アプリ固有のライブラリ。
|- log/ アプリ実行時のログ。
|- node_modules/ Node.jsのパッケージ。npmによる。
|- public/ 静的ファイル置き場。インターネットからそのまま参照できる領域。
|- storage/ Diskサービスで用いるActive Storageファイル。
|- test/ 自動テストのためのファイル。
|- tmp/ アプリ実行時に一時的に保存するデータ。
|- vendor/ 外部からのGem (色々gem入れてるはずなのに空なのはなぜ・・・?)。
|- babel.config.js JavaScriptのコンパイラであるBabelの設定ファイル。
|- package.json npmの依存関係を記述する。
|- postcss.config.js PostCSS(CSSツールのフレームワーク)の設定ファイル。
|- yarn.lock パッケージマネージャであるyarnの依存関係を記述したファイル。
最後に
WebpackとかAction Cableとか、色々読んではみたけど大分チンプンなので、今後も実際使いながら学んでいきたい。