2017-08-09 31 views
0

正如標題所示,設計輔助方法只能在users_controller.rb中工作。如果我嘗試在登錄後在任何其他控制器(甚至是applications_controller.rb)中訪問它,即時獲取此錯誤。設計current_user輔助方法只適用於users_controller.rb

Routing Error 
undefined local variable or method `current_user' for ApplicationController:Class 

我只是在applications_controller.rb中加入puts current_user

這是我routes.rb

devise_for :users 
resources :users 

任何想法,爲什麼發生這種情況?謝謝。

+0

的可能的複製[導軌/設計模型訪問當前\ _user但它是零(https://stackoverflow.com/questions/18562143/ rails-devise-current-user-in-model-but-its-nil) – Crashtor

回答

1

CURRENT_USER不是一個類的方法,所以它不會直接在ApplicationController中

這將是可用可全部actionbefore_action

使用下面的邏輯來檢查current_user的價值你的應用控制器。

class ApplicationController < ActionController::Base 
    before_action do 
    puts current_user 
    end 
    protect_from_forgery with: :exception 
end 

請讓我知道如果你仍然面臨的任何問題

+0

它顯示出來。我得到了錯誤,導致「puts current_user」不在方法/函數中。 – Chet

+0

很高興爲您效勞 –