Ruby on rails 不能';无法一次又一次地找到没有ID的用户
嗨,伙计们,我和RoR有些问题。我尝试这样定义一个当前用户Ruby on rails 不能';无法一次又一次地找到没有ID的用户,ruby-on-rails,ruby,Ruby On Rails,Ruby,嗨,伙计们,我和RoR有些问题。我尝试这样定义一个当前用户 class ApplicationController < ActionController::Base protect_from_forgery with: :exception def current_user @current_user ||= User.find(session[:user_id]) end end class ApplicationController
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
def current_user
@current_user ||= User.find(session[:user_id])
end
end
class ApplicationController
这是我的错误:找不到没有ID的用户
我不知道为什么。。。我的BBD中有一个用户id。您将收到此错误,因为您的会话中没有:user\u id。尝试:
@current_user ||= session[:user_id] && User.find(session[:user_id])
或
但请注意,若并没有键,rails将在每次调用current\u user
时尝试从数据库中获取用户(因为@current\u user
为nil)。避免这种情况的最佳方法是:
def current_user
return @current_user if defined?(@current_user)
@current_user = User.find(session[:user_id])
end
这也将允许您缓存nil结果。解决方案是
def current_user
@current_user ||= session[:user_id] && User.find(session[:user_id])
en
或
检查
session[:user\u id]
是否为空BBD
代表什么?谢谢你!)现在我将尝试确定哪个用户是管理员还是非管理员。Thx:)
def current_user
@current_user ||= session[:user_id] && User.find(session[:user_id])
en
def current_user
return unless session[:user_id]
@current_user ||= User.find(session[:user_id])
end