読者です 読者をやめる 読者になる 読者になる

ぞえの技術めも

Ruby on Rails勉強中

【88日目】【1日20分のRailsチュートリアル】【第8章】2つの目立たないバグの原因を理解する

Ruby on Railsチュートリアル(第3版)

今日は「8.4.4 2つの目立たないバグ」から。

8.4.4 2つの目立たないバグ

実は小さなバグが2つ残っています。2つのバグは互いに強く関連しています。

へ~。まとめるとこんな感じらしい。

(1)同じサイトに複数のウィンドウ(もしくはタブ)でログインしており、片方のウィンドウでログアウト→もう片方のウィンドウでログアウトしたときにエラー発生

(2)同じサイトに複数のブラウザ(ChromeFirefoxなど)でログインしており、片方のブラウザでログアウト(①)→もう片方のブラウザでログアウトせずにブラウザ終了(②)→再度同じページを開く(③)とエラー発生

(1)はなんとなく分かった。

(2)がなんだか分かりにくいけど、

①でログアウトしたときにUserモデルのデータベースに保存してある記憶トークン(remember_token)が削除される
 ↓
②でブラウザ終了したときに一時セッションに保存していたuserが削除される
 ↓
③でページ開いたときにcurrent_userを取りに行って、ログアウトしてないブラウザのcookiesは残っているので
Userモデルのデータベースに記憶トークンを取りに行くけど①で削除されているので例外が発生する

ってことらしい。ふむふむ。

バグの理解に時間がかかったので今日はここまで。

今日の作業時間は【30分】

次は「8.4.4 2つの目立たないバグ」のテストを書くところから。