我正在为我的应用程序使用Devise(Ruby 2.0,Rails 4)。一切运行良好(注册,登录等)。但是当我想在ApplicationController中获取current_user时,它总是返回nil(已经登录)。这是我的代码
class ApplicationController < ActionController::Base
before_action :set_locale
def set_locale
locale = detect_location
if current_user && current_user.locale.blank?
current_user.locale = locale
current_user.save
end
I18n.locale = locale
end
end
任何帮助?
谢谢,
答案 0 :(得分:0)
您是否在其他控制器上进行身份验证而不是此身份验证?
e.g。在其他控制器中使用before_filter :authenticate_user!
?
答案 1 :(得分:0)
def set_locale
I18n.locale =
unless user_signed_in?
params[:locale] || 'en'
else
current_user[:locale] || 'en'
end
end
我