自分にやさしく学ぶプログラミング

プログラミング学習記録、備忘録

Ruby on Rails : railsのフォルダ、ファイルの意味について自分なりにまとめる

概要

Railsのフォルダ構成の意味がよくわかっていないので、とりあえず今の時点での理解を文章化してみる。 正直あまり自信ないので、もしも間違いがあればコメント等いただけるとありがたい。

Railsの各フォルダ、ファイルの意味

自明なものなど一部省略

|- app/ アプリケーションの具体的な機能がフォルダにまとめられている。
|   |- assets/ HTMLに付随するCSSJavaScriptや画像など。
|  |   |- 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とか、色々読んではみたけど大分チンプンなので、今後も実際使いながら学んでいきたい。