我正與Chrome中的管理員用戶和另一個瀏覽器中的常規用戶一起工作。在我作爲管理員銷燬其中一位普通用戶後,我試圖在被銷燬的用戶正在使用的瀏覽器中重新打開該應用程序。不過,我得到這個錯誤消息銷燬用戶後清除會話
Couldn't find Twitteruser with id=2
所以會議的生活在瀏覽器後,用戶的破壞
會議的這樣
def create
twitteruser = Twitteruser.from_omniauth(env["omniauth.auth"])
session[:twitteruser_id] = twitteruser.id
redirect_to twitterquestions_url, notice: "Signed in!"
end
在application_controller創建,它當前用戶的創建像這樣
def current_user
@current_user ||= Twitteruser.find(session[:twitteruser_id]) if session[:twitteruser_id]
end
這是破壞行動
def destroy
Twitteruser.find(params[:id]).destroy
flash[:success] = "User destroyed."
redirect_to users_url
end
基於其他SO答案,我發現,我試圖重置會話兩種不同的方式,但他們都重置管理員用戶的會話,而不是誰是破壞
def destroy
Twitteruser.find(params[:id]).destroy
#1. session[:twitteruser_id] = nil destroys my own session, not deleted users
#2. reset_session #reset admin's session
flash[:success] = "User destroyed."
redirect_to twitterusers_url
end
我的用戶也嘗試將參數傳遞給reset_session,但它不接受它們。
誰能告訴我如何清除被破壞的用戶會話?謝謝
看來你可以只有用戶和你(用戶)即將清除Twitteruser的會話。那麼當你執行'session [:twitteruser_id] = nil'來清除你自己的會話時,怎麼可能呢? – 2013-02-15 22:03:23
對不起,OP中的錯誤。沒有用戶,只有Twitteruser。我現在修好了。這不是會話問題的原因。 – Leahcim 2013-02-15 22:05:01
該應用程序如何知道您是「Admin」?這是一個sign_out行動或Twitteruser刪除? – 2013-02-15 22:08:05