私は Railstutorial.org のチュートリアルに取り組んでおり、テストに合格して第 8 章を完了しました。私の問題は、ガイドのコードに正確に従うと、ログインできますが、ログアウトできないことです。
「ログアウト」をクリックすると、root_path にリダイレクトされますが、ログインしたままです。
セッションヘルパーの動作をたどったと思います。具体的には、次の行:
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
Rails コンソールと pry を介して、cookie[:remember_token] が nil であると判断できましたが、私のユーザーの remember_token も nil であるため、find_by_remember_token は「ねえ nil == nil! すばらしい! ユーザーを見つけました!」と言っています。これが明らかに望ましくない動作であることを除いて。
current_user メソッドを次のように変更して修正しました。
def current_user
@current_user ||= cookies[:remember_token] && User.find_by_remember_token(cookies[:remember_token])
end
これは私のコードのエラーである可能性が高いことを完全に受け入れ、理解しています。プロジェクトのこの時点から Michael Hartl のコミットを見つけ、ファイルを比較しましたが、矛盾は見つかりませんでした。ここで何が起こっているのかについてのアイデアはありますか?
お時間をいただきありがとうございます。