Devise current_user helper方法仅适用于users_controller.rb

时间:2017-08-09 12:34:28

标签: ruby-on-rails devise

正如标题所示,设计助手方法仅适用于users_controller.rb。如果我在登录后尝试在任何其他控制器(甚至是applications_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

知道为什么会这样吗?感谢。

1 个答案:

答案 0 :(得分:1)

current_user不是类方法,因此它不能直接在ApplicationController中使用

它将在所有actionbefore_action

中提供

使用以下逻辑检查Application Controller中的current_user的值。

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

如果您仍然遇到任何问题,请告诉我