我最近一直在研究 Rails,发现有很多对 current_user
的引用。这仅来自 Devise 吗?即使我使用 Devise,我也必须自己手动定义它吗?使用 current_user
是否有先决条件(例如 session 、用户的存在等)?
最佳答案
它是由几个 gem 定义的,例如设计
您需要将 user_id 存储在某处,通常是在登录后的 session 中。它还假设您的应用程序拥有并需要用户、身份验证等。
通常,它类似于:
class ApplicationController < ActionController::Base
def current_user
return unless session[:user_id]
@current_user ||= User.find(session[:user_id])
end
end
这假设 User 类存在,例如#{Rails.root}/app/models/user.rb
。
更新:当没有当前用户时避免额外的数据库查询。
关于ruby-on-rails - rails : where does the infamous "current_user" come from?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12719958/