【发布时间】:2014-02-28 12:53:13
【问题描述】:
我正在从 Michael Hartl 的教程中学习 Rails,但我对 SessionsHelper 模块感到非常困惑。没有提供关于 current_user 方法重复的足够信息。有人可以解释为什么有两个,它们各自的目的是什么?
module SessionsHelper
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
end
我知道sign_in 方法会触发对current_user=(user) 的调用,但为什么又要调用current_user 方法呢?我了解第二种方法基于remember_token 从数据库中获取用户,但我无法将这些点联系起来。
【问题讨论】:
标签: ruby-on-rails ruby railstutorial.org