我想找到誰是登錄的CURRENT_USER 我正在使用的應用程序控制器,這種方法:問題找到當前用戶軌
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
我可以訪問展方法CURRENT_USER在我的控制器,但在任何其他方法是零。 這很奇怪,因爲它在工作之前,現在我不知道我做了什麼,但它不再工作。 任何人都可以幫助我嗎?
我想找到誰是登錄的CURRENT_USER 我正在使用的應用程序控制器,這種方法:問題找到當前用戶軌
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
我可以訪問展方法CURRENT_USER在我的控制器,但在任何其他方法是零。 這很奇怪,因爲它在工作之前,現在我不知道我做了什麼,但它不再工作。 任何人都可以幫助我嗎?
鑑於您最近的評論,您的問題僅與會話有關。它沒有鏈接到你的定義current_user
方法。
默認情況下,當HTTP POST請求中沒有身份驗證令牌時,Rails 3應用程序會重置會話。這個行爲與Rails 4稍有不同(取決於配置),但最後你會遇到類似的問題。
我猜你的ajax查詢不包含身份驗證令牌,因此警告WARNING: Can't verify CSRF token authenticity
,因此是空的會話。對於空的會話,current_user
方法將始終返回nil
,除非您處於GET請求中,並且自驗證以來未發出任何POST請求。
我不寫這裏的解決方案,因爲它不是簡單的(它取決於你使用的JavaScript框架),它沒有鏈接到你原來的問題。
你應該閱讀這問題的答案:WARNING: Can't verify CSRF token authenticity rails
你也有'是helper_method:current_user'在應用程序控制器? – DGM
是的,我有一個helper_method – kbaccouche
嘗試找出,如果它是零,因爲會話[:user_id]是零或因爲其他,特殊情況下。 –