ここ数日は資格試験の勉強に追われており、プログラミング勉強に時間を割けなかった。
資格試験が無事に終了したので、プログラミング勉強を再開しようとするも、久々に見るとなにも思い出せない。
とりあえず、やっていく。
この章ではログイン済みのユーザーのみアクセスできるようにするらしい。
8.1 セッション
最初は「ステートレス」やら「プロトコル」やら耳慣れないワードが飛び交う。
HTTPだとログイン情報をすぐに忘れてしまうので、「セッション」というものを使うことでより便利なしくみをつくろうね、ってことらしい。
そして、セッションを実装するには「cookies」を使うらしい。
ところどころ、RESTというワードが出てくるけど、これはなんなのだろう...。
あとは、いまだにget
とpost
の違いもよくわかっていない。
とりあえず、先に進むことが大切なので先に進める。
が、この章あたりからむずい...。
とにかく、この章ではログインに必要な情報(メアドとパスワード)を収集し、ユーザー情報のデータベースと照合するということをした。
認証情報が誤っていればフラッシュメッセージというエラーを出す。
8.2 ログイン
この章では、cookiesを使った一次セッションでユーザーをログインできるようにする。
また、Rubyの慣習に従って、User.find_byの実行結果をインスタンス変数に保存する工夫もしています。こうすることで、1リクエスト内におけるデータベースへの問い合わせは最初の1回だけになり、以後の呼び出しではインスタンス変数の結果を再利用するようになります。地味なようですが、こういった工夫がWebサービスを高速化させる重要なテクニックの1つです
難しいけど、この文章の意味はなんとなく理解した。
繰り返して利用する情報は変数に入れておいたほうが効率的で処理にかかる時間を短縮できるということだろう。
また、ログインしているときとログインしていない場合でヘッダーの表示を変えることができる。
変える際はIF文を利用しており、プログラミング初心者でも理解しやすい。
8.3 ログアウト
RESTについてちょっと調べてみた。
アプリケーションのリソースがURLで示せるなどの特徴を有しているとのこと。
確かに、そういったサービスはたくさんある。Qiitaもそうなのでは?
それがどう関係しているのかはまだ理解しきれていないが、destroy
アクションをすることでセッションを破棄できるようだ。