はじめに
Railsの設計概念や処理の流れの基本的な部分を備忘録として残しておきます。
Rails3つの設計理念
CoC(Convention over Configuration)
「設定より規約」という意味。
従来のフレームワークのように設定を大量に記述するのではなく、ルールに則って開発することで、余計な設定を書かずに出来るだけ少ない労力でプログラミングをしよう!ということ。
ユーザークラスを「User」、データベースを「users」と複数形にすることでRailsは自動的にクラスとデータベースを繋ぐので設定などを書く必要はなくなる。
DRY(Don’t Repeat Yourself)
「同じことを繰り返さない」という意味。
情報は複数の場所に記載せず一箇所に記述をすることで、変更や修正をする場合もスムーズに行うことができる。
REST(Representational State Transfer)
RESTとはWebアプリケーションなどにおける設計概念の一つであり、
RDBMSのCRUD(create/read/update/delete)]
HTTPRequestの各メソッド(GET/POST/PUT/DELETE)
を利用して開発することで意味のつかみやすいURLを設計することができる。
mvcとそれぞれの役割
mvcとはmodel/view/controllerの頭文字であり、アプリケーションをモデル(データを扱う部分)、ビュー(ユーザーに見える部分)、コントローラ(ユーザーからのリクエストに対してモデルやビューと連携を取る部分)に分割するものである。
model
Railsアプリケーションの場合はデータベース毎にモデルが用意されており、利用者のリクエスト(url)で呼び出されたアクションは、モデルを介してSQL文を発行してデータベースとやりとりを行いデータを取得したり格納したりする。
データの保持はAction Recordというコンポーネントが担当。
view
ビューは変数を介して渡されたデータを用いてHTML文書を作成しコントローラへ返す。
アプリケーションの見た目を制御する役割を持つ。
Viewに当たるのがAction View。
controller
コントローラはユーザーからのリクエスト(url)を受けて、モデルに適切た動作を要求して、またviewを組み合わせる役割を持つ。
controllerに当たるのが。、Action Controllerとなる。
Rails処理の流れ(リクエストからレスポンスまで)
上の図で説明すると
1:リクエストがHTTPサーバを通る
2:Railsアプリケーション内に入ると、コントローラのアクションを案内するルータがいる
3:ルータにリクエストを伝え、コントローラ・アクションに進む
4:アクションで、必要な場合はモデルに操作を要求する
5:モデルがDBで適切な動作をする、データの取り出し又は登録
6:データはアクションの中のインスタンス変数の中に渡される
7:ビューに変数が渡り、HTMLが生成される
8:生成されたHTMLが HTTPサーバを通ってレスポンスとして送られる
参考サイト
[Railsの処理の流れを理解しよう] (https://diveintocode.jp/tips/process_flow)