Ruby on RailsはWebアプリケーションのフレームワークです。
レイヤー化アーキテクチャが優れており、ファイルの構造が厳密に規約があります。
ファイルの構造は、自己で追加したりGemで機能を拡張して増えます。
プロジェクトにより違いがありますが、よく使う構造をチートシートにまとめました。
Application Directory
- 開発の主となるエリア
├ app/ # アプリケーション
├ assets/ # フロントエンドで利用するファイル
├ images/ # gif, jpeg, png ...
├ javascripts/ # js, coffee
├ application.js # Rails:Application
└ users.js.coffee # Rails:Scaffold (User)
├ stylesheets/ # css, scss
├ application.css # Rails:Application
├ scaffold.css # Rails:Scaffold
└ users.css.scss # Rails:Scaffold (User)
├ controllers/ # リクエストとレスポンスの制御
├ concerns/ # Rails:Aspect Oriented Programming
├ application_controller.rb # Rails:Application
└ users_controller.rb # Rails:Scaffold (User)
├ decorators/ # viewsの補助 [ gem `draper` ]
└ user_decorator.rb # Rails:Scaffold (User)
├ helpers/ # viewsの補助
├ application_helper.rb # Rails:Application
└ users_helper.rb # Rails:Scaffold (User)
├ models/ # ビジネスロジック (エンティティ)
├ concerns/ # Rails:Aspect Oriented Programming
├ support/ # モデルの支援
└ settings.rb # configの支援 [ gem `settingslogic` ]
└ user.rb # Rails:Scaffold (User)
├ policies/ # 認可の補助 [ gem `pundit` ]
├ application_policy.rb # Rails:Application
└ user_policy.rb # Rails:Scaffold (User)
├ services/ # ビジネスロジック (エンティティ以外)
├ views/ # 出力インターフェイスのデザイン
├ layouts/ # 基本レイアウト
└ application.html.erb # Rails:Application
├ users/ # Rails:Scaffold (User)
├ edit.html.erb # 編集 Rails:Scaffold (User)
├ index.html.erb # 一覧 Rails:Scaffold (User)
├ new.html.erb # 追加 Rails:Scaffold (User)
├ show.html.erb # 表示 Rails:Scaffold (User)
└ _form.html.erb # 編集,追加の部品 Rails:Scaffold (User)
└ workers/ # 遅延処理 [ gem `sidekiq` ]
Other Directory
- 開発の補助となるエリア
├ config/ # 設定情報
├ locales/ # 言語
├ defaults # 基本の言語
├ en.yml # 基本の言語 (英語)
└ ja.yml # 基本の言語 (日本語)
├ models # モデルの言語
├ user # Userの言語
├ en.yml # Userの言語 (英語)
└ ja.yml # Userの言語 (日本語)
├ database.yml # データベース
└ routes.rb # ルーティング
├ db/ # データベース
├ migrate/ # マイグレーション
├ development.sqlite3 # データベース本体
└ schema.rb # データベース構造
├ doc/ # ドキュメント
├ lib/ # ライブラリ
└ tasks # rake task
├ log/ # ログの出力先
├ public/ # フロントで利用するファイル
├ test/ # テストファイル
├ spec/ # テストファイル [ gem `rspec-rails` ]
├ cassettes/ # HTTP テストデータ [ gem `vcr` ]
├ factories/ # Model テストデータ [ gem `factory_girl` ]
├ features/ # シナリオテスト [ gem `capybara` ]
├ support/ # テストの支援 [ gem `rspec-rails` ]
├ rails_helper.rb # テストの補助 [ gem `rspec-rails` ]
└ spec_helper.rb # テストの補助 [ gem `rspec-rails` ]
├ tmp/ # テンポラリファイル
└ vendor/ # 外部ライブラリ
Root Files
- 開発の
README
や定義ファイル等
├ .bundle # Gemの補助 [ gem `bundler` ]
├ .env # 設定の補助 [ gem `dotenv-rails` ]
├ .git # `Git`のリポジトリ
├ .gitignore # `Git`から除外
├ .pryrc # REPL環境 [ gem `pry-rails` ]
├ .rspec # rspecオプション [ gem `rspec` ]
├ config.ru # Rackup [ gem `rack` ]
├ Gemfile # `Gem`の一覧
├ Gemfile.lock # `Gem`の依存関係
├ Guardfile # テストの自動化 [ gem `guard-rspec` ]
├ Procfile # `Run`の補助 [ gem `foreman` ]
├ Rakefile # Rake Task [ gem `rake` ]
└ README.md # 最初に読むドキュメント