登錄到應用程序,然後完全關閉瀏覽器後,我重新打開瀏覽器,期望被註銷。但是我仍然登錄?Rails教程(M.Hartl)第3版,第8章,爲什麼應用程序忘記登錄狀態?
我在8.2.3 Changing the layout links以及除了上述之外,應用程序看起來和按預期運行。代碼也是來自教程。我認爲這是相關文件:
應用程序/傭工/ sessions_helper.rb
module SessionsHelper
# Logs in the given user.
def log_in(user)
session[:user_id] = user.id
end
# Returns the current logged-in user (if any).
def current_user
@current_user ||= User.find_by(id: session[:user_id])
end
# Returns true if the user is logged in, false otherwise.
def logged_in?
!current_user.nil?
end
end
應用程序/控制器/ sessions_controller.rb
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in user
redirect_to user
else
flash.now[:danger] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
end
end
這是幫助。我認爲我的Chrome操作系統瀏覽器可能存在問題,因爲即使將設置從「繼續停留的位置」改爲「離開後繼續」,我也會遇到問題。但是,在Windows上使用常規Chrome瀏覽器時,此修補程序可以運行。而IE11也不錯。至少我知道我沒有錯誤地複製你的代碼。 –