0
0

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 3 years have passed since last update.

Ruby on Railsのチュートリアル ~第8章 基本的なログイン機構~

Posted at

はじめに

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

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?