はじめに
webアプリケーションを作るための学習記録
(マッチングアプリを作る予定)
こちらのチュートリアルを片っ端から進めていく
【Ruby on Rails チュートリアル】
https://railstutorial.jp/
第8章 基本的なログイン機構
まとめ
- Railsのsessionメソッドを使うと、あるページから別のページに移動するときの状態を保持できる。一時的な状態の保存にはcookiesも使える
- ログインフォームでは、ユーザーがログインするための新しいセッションが作成できる
- flash.nowメソッドを使うと、描画済みのページにもフラッシュメッセージを表示できる
- テスト駆動開発は、回帰バグを防ぐときに便利
- sessionメソッドを使うと、ユーザーIDなどをブラウザに一時的に保存できる
- ログインの状態に応じて、ページ内で表示するリンクを切り替えることができる
- 統合テストでは、ルーティング、データベースの更新、レイアウトの変更が正しく行われているかを確認できる
所感
・ログインの仕組みがわかってよかった
・統合テストの流れが記載されてたのわかりやすかった
1.ログイン用のパスを開く
2.新しいセッションのフォームが正しく表示されたことを確認する
3.わざと無効なparamsハッシュを使ってセッション用パスにPOSTする
4.新しいセッションのフォームが再度表示され、フラッシュメッセージが追加されることを確認する
5.別のページ (Homeページなど) にいったん移動する
6.移動先のページでフラッシュメッセージが表示されていないことを確認する
1.ログイン用のパスを開く
2.セッション用パスに有効な情報をpostする
3.ログイン用リンクが表示されなくなったことを確認する
4.ログアウト用リンクが表示されていることを確認する
5.プロフィール用リンクが表示されていることを確認する
途中参考にしたページ
・主要ブラウザCookieの確認方法まとめ
https://qiita.com/pipi0813/items/93e60c605f89f93e49fb#chrome
・HTTPレスポンスヘッダ Expires とは?
https://weblabo.oscasierra.net/http-header-response-expires/
・Rails テスティングガイド
https://railsguides.jp/testing.html
fixtureとはいわゆるサンプルデータを言い換えたもの
・Atomでコメントアウトするときのお手軽裏ワザ
https://qiita.com/Mocacamo/items/429c9fb3ff39745379b6
「Command + /」(Macの場合)
・railsログアウト時のCookiesの状態
https://teratail.com/questions/61259
見れないっぽい
使用したコマンド
git checkout -b basic-login
rails generate controller Sessions new
rails routes
rails routes |grep sessions
rails generate integration_test users_login
rails test test/integration/users_login_test.rb
session = {}
session[:user_id] = nil
@current_user ||= User.find_by(id: session[:user_id])
session[:user_id]= User.first.id
@current_user ||= User.find_by(id: session[:user_id])
@current_user ||= User.find_by(id: session[:user_id])
heroku logs --tail