16
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby on Rails ソースファイルの読む順序について

Last updated at Posted at 2017-11-10

Ruby on Rails ソースファイルの読む順序について

はじめに

かの有名なRuby on Rails チュートリアルを実施していたのですが、
ソースファイルの数が増えたり、章によって作成、編集するソースファイルの順序が異なったりしており、
どのような順序で読み解くのかが分からなくなってきましたので、整理の意味も込めてまとめます。

MVC(Model-View-Controller)と全体の処理の流れ

前提として、MVC(Model-View-Controller)について触れたいと思います。
Railsでは、MVCというアーキテクチャパターンを採用しています。

  • Model:Viewにて表示するためのデータの集積
  • View:Modelのデータの表示
  • Controller:リクエスト全体のコントロール

上記内容を踏まえて、全体の処理の流れを簡単に説明すると、以下の通りとなります。

  1. リクエスト内容からどのコントローラに振り分けるかを特定
  2. 該当コントローラにて処理を実施(Controller)
  3. 場合によってはデータベースへのアクセス、その他必要なデータに関する処理を実施(Model)
  4. HTML、JavaScript、JSON等を生成し、ブラウザにて描画(View)

フォルダ構成

Ruby on Rails チュートリアル実施時に作成したディレクトリ構成(抜粋)とそれぞれの役割についてまとめます。


├── app
│ ├── controllers (リクエストのコントロール)
│ ├── helpers (各種メソッド)
│ ├── models (データベースへのアクセス、その他必要なデータの集積)
│ └── views (HTML、JavaScript、JSON等の生成)
├── config (各種設定(そのうち、本稿で重要なものはルーティングの設定))
└── db (DBの構成)

ソースファイルの読む順序

上記内容を元に、ソースファイルの読む順序をまとめます。

  1. リクエストがどのURLかを特定する。(GETであればURLから、POSTであれば app/views 配下のソースから特定する。)
  2. config/routes.rb を読み、URLのリクエストからコントローラ、アクションを特定する。
  3. app/controllers/[該当コントローラ]_controller.rb を読み、その中の該当アクションの処理を読む。
  4. 必要に応じて、app/models/[該当モデル].rbdb/schema.rb 内の該当DBの構成を読む。
  5. 必要に応じて、app/helpers 内のファイルを読む。
  6. コントローラのファイルが読み終わったら、app/views/layouts/application.html.erb を読む。
  7. 必要に応じて、パーシャル(app/views/ 内のアンダースコアから始まるファイル)、
    app/views/[該当コントローラ]/[該当アクション].html.erb
    app/helpers 内のファイルを読む。

まとめ

基本的には、config(routes.rb)、controllers、viewsの順に読む。
controllers、viewsの内容に応じて、models、db、helpersを読む。

もちろん、プロジェクトによって例外はあると思いますので、参考程度に留めておいてください。

16
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?