Ruby on Railsは、MVC(Model-View-Controller)アーキテクチャを採用しています。このアーキテクチャに従って、Railsの ディレクトリ構成 が設計されています。Railsの ディレクトリ構成 は、アプリケーションの開発に重要な役割を果たします。この文書では、Railsのディレクトリ構成について詳細に説明します。
Contents
Rails プロジェクトの作成
Ruby on Railsのプロジェクトを作成するには、以下のコマンドを実行します。
rails new project-name
このコマンドを実行すると、以下のようなディレクトリ構造が生成されます。
project-name/
app/
assets/
config/
images/
javascripts/
stylesheets/
channels/
controllers/
helpers/
jobs/
mailers/
models/
views/
bin/
config/
environments/
initializers/
locales/
puma.rb
routes.rb
application.rb
boot.rb
cable.yml
database.yml
environment.rb
secrets.yml
spring.rb
db/
migrate/
schema.rb
seeds.rb
lib/
log/
public/
storage/
test/
controllers/
fixtures/
helpers/
integration/
mailers/
models/
system/
application_system_test_case.rb
test_helper.rb
tmp/
cache/
pids/
sockets/
storage/
vendor/
次はこのディレクトリについて説明していきます。
appディレクトリ
app
ディレクトリには、アプリケーションのコアロジックが含まれています。このディレクトリは、Railsアプリケーションの中心的な場所になります。その中でも、以下のようなサブディレクトリがあります。
assets
assets
ディレクトリには、アプリケーションの静的ファイルが含まれています。例えば、CSSファイルやJavaScriptファイル、画像ファイルなどが含まれます。これらのファイルは、app/assets
ディレクトリの下に、以下のようなサブディレクトリに配置されます。
javascripts
: JavaScriptファイルを配置するディレクトリstylesheets
: CSSファイルを配置するディレクトリimages
: 画像ファイルを配置するディレクトリconfig
: Sprocketsの設定ファイルを配置するディレクトリ
Sprocketsは、Railsアプリケーションで使用されるデフォルトのAsset Pipelineで、静的ファイルを管理します。Sprocketsは、静的ファイルを最適化して、アプリケーションのパフォーマンスを向上させることができます。
channels
channels
ディレクトリには、Action Cableのチャンネルが含まれています。Action Cableは、WebSocketを使用して、リアルタイムなWebアプリケーションを実現するためのライブラリです。チャンネルは、WebSocketを使用して、アプリケーションとクライアントの間でリアルタイムにデータを送信するために使用されます。
controllers
controllers
ディレクトリには、アプリケーションのコントローラが含まれています。コントローラは、リクエストを受け取り、ビューをレンダリングするためのアクションを定義します。アプリケーションのビジネスロジックを記述する場合は、コントローラ内に実装することができます。
helpers
helpers
ディレクトリには、アプリケーションのヘルパーメソッドが含まれています。ヘルパーメソッドは、ビューで使用するために定義されます。ビューでは、ヘルパーメソッドを使用して、共通の処理を実行することができます。
jobs
jobs
ディレクトリには、Active Jobのジョブが含まれています。Active Jobは、ジョブキューを使用して、非同期処理を実行するためのライブラリです。ジョブは、非同期で実行する必要がある処理を定義するために使用されます。
mailers
mailers
ディレクトリには、アプリケーションのメーラーが含まれています。メーラーは、メールを送信するためのアプリケーションの機能を定義するために使用されます。メーラーは、Action Mailerを使用して、メールを送信することができます。
models
models
ディレクトリには、Railsのモデルが含まれています。これらのモデルは、データベースのテーブルと対応しています。モデルは、アプリケーションのビジネスロジックを記述する場合に使用されます。また、Active Recordパターンを使用して、データベースとのやり取りを簡単に実現することができます。
views
views
ディレクトリには、アプリケーションのビューが含まれています。これらのビューは、コントローラから渡されたデータを表示するために使用されます。ビューは、HTML、CSS、JavaScriptなどのフロントエンド技術を使用して実装することができます。
binディレクトリ
bin
ディレクトリには、Railsアプリケーションを実行するための実行可能ファイルが含まれています。例えば、rails
コマンドやrake
コマンドなどがあります。
configディレクトリ
config
ディレクトリには、アプリケーションの設定ファイルが含まれています。その中でも、以下のようなファイルがあります。
routes.rb
routes.rb
ファイルには、アプリケーションのURLルーティングが定義されています。これにより、リクエストを受け取った際に、どのコントローラのどのアクションを呼び出すかが決定されます。ルーティングは、アプリケーションのURLに対して、正しいコントローラとアクションをマッピングするために使用されます。
application.rb
application.rb
ファイルには、アプリケーションの設定が含まれています。このファイルでは、アプリケーションの設定を変更することができます。例えば、デバッグモードを有効化することができます。
database.yml
database.yml
ファイルには、アプリケーションのデータベース接続設定が含まれています。このファイルを使用して、アプリケーションが使用するデータベースの種類や接続情報を設定することができます。
dbディレクトリ
db
ディレクトリには、アプリケーションのデータベース関連のファイルが含まれています。その中でも、以下のようなファイルがあります。
schema.rb
schema.rb
ファイルには、アプリケーションのデータベースのスキーマが定義されています。これにより、データベースのテーブルの定義や、テーブル間の関係性が定義されます。スキーマファイルは、データベースのマイグレーションに使用されます。
seeds.rb
seeds.rb
ファイルには、アプリケーションの初期データが含まれています。このファイルを使用して、データベースに初期データを投入することができます。
publicディレクトリ
public
ディレクトリには、アプリケーションのパブリックファイルが含まれています。例えば、画像ファイルやCSSファイルなどが含まれます。このディレクトリに置かれたファイルは、直接アクセスすることができます。
libディレクトリ
lib
ディレクトリには、アプリケーションのライブラリファイルが含まれています。このディレクトリに置かれたファイルは、アプリケーションのどこからでも読み込むことができます。
logディレクトリ
log
ディレクトリには、アプリケーションのログファイルが含まれています。このディレクトリには、開発時に発生したエラーや、アプリケーションの動作ログが記録されます。
tmpディレクトリ
tmp
ディレクトリには、アプリケーションの一時ファイルが含まれています。例えば、キャッシュファイルやセッションファイルなどがあります。
testディレクトリ
test
ディレクトリには、アプリケーションのテストコードが含まれています。このディレクトリには、ユニットテストや統合テストなどが含まれます。
以上が、Ruby on Railsのディレクトリ構成についての説明です。