2017-08-09 5 views
0

タイトルに示されているように、開発者ヘルパーメソッドはusers_controller.rbでのみ動作します。ログイン後に他のコントローラ(たとえapplications_controller.rb)にもアクセスしようとすると、このエラーが発生します。Devise 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-accessible-in-model-but-its-nil) – Crashtor

答えて

1

それはすべてactionbefore_action

current_user内の値をチェックするには、以下のロジックを使用して利用できるようになるApplicationControllerに

に直接使用することはできませんので、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

お手伝いをしてうれしい –

関連する問題