【Rails】について言葉でまとめてみた② [処理の全体象]・[セッション/クッキー]・[バリテーション]

概要

言葉でまとめてみた②

[処理の全体象]・[セッション/クッキー]・[バリテーション]について言葉で説明できるようにする

言葉でまとめてみた①はこちら

[処理の全体象]

Railsアプリで、Boardの一覧画面を見るために、ブラウザのアドレスバーにURLを打ち込んで、表示されるまでの流れ

クライアント → HTTPリクエスト → ルーテイング → コントローラー → モデル → DB → ビュー → HTTPレスポンス → クライアント

これを言葉にすると

ブラウザからサーバーにリクエストが渡り、railsがリクエストを解析、routingを参照して処理するコントローラとアクションを決定、コントローラでDBへの参照が必要ならActiveRecordを介してやり取りし、DBから値を取得。Viewに値を埋め込んでHTMLや画像、cssなどのアセットファイルを含めてブラウザに返す。ブラウザはレスポンスからHTML,css等を解析して装飾して画面に表示する。

[セッション/クッキー]

ログインの仕組みをセッション、Cookieという単語を使って説明せよ。(HTTP、ステートレスなどの単語も出てくるとGOOD)

HTTPリクエスト → ステートレスなので状態を保持できない。(1回のやり取りで処理が完結してしまう為、1回目のリクエストとレスポンスと2回目のリクエストとレスポンスに繋がりがない)

セッション → サーバー側で保存されている小さな情報またはその領域

Cookie → クライアント側で保存されている小さな情報またはその領域

ログイン → セッションとかCookieにユーザーの情報を保存することで異なるHTTPリクエストに繋がりを持たせること

例えば...通販などで、商品選択して、選択一覧画面を見ると中身が入っていない。みたいな

参照

Railsガイド セッションストレージ

Railsガイド セッション

Railsガイド Cookie

HTTP はステートレス

[バリテーション]

savesave!(エクスクラメーションマーク付き)の挙動の違いは?使い分けは?

save → 失敗したらfalseが返る

save! → 失敗したら例外が返る

saveは失敗することを想定している処理に使用し、save! は失敗しないはずの処理に使用する。

Railsガイド バリテーション