我最近一直在环顾Rails并注意到有很多引用current_user.这只来自Devise吗?即使我使用Devise,我是否必须自己手动定义?是否有使用的先决条件current_user(如会话,用户等的存在)?
Eri*_*son 79
它由几个宝石定义,例如Devise
您需要将user_id存储在某处,通常是在登录后的会话中.它还假设您的应用程序具有并且需要用户,身份验证等.
通常,它是这样的:
class ApplicationController < ActionController::Base
def current_user
return unless session[:user_id]
@current_user ||= User.find(session[:user_id])
end
end
Run Code Online (Sandbox Code Playgroud)
这假设User类存在,例如#{Rails.root}/app/models/user.rb.
更新:在没有当前用户时避免其他数据库查询.
Zac*_*emp 10
是的,current_user使用session.如果要滚动自己的身份验证,可以在应用程序控制器中执行类似操作:
def current_user
return unless session[:user_id]
@current_user ||= User.find(session[:user_id])
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41780 次 |
| 最近记录: |