我正在阅读很棒的 Michael Hartl 教程来在这里构建 ruby 应用程序。
我试图理解如何创建会话的概念,但我一直在理解这一行:
self.current_user = user
在这种方法中:
module SessionsHelper
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
end
我了解使用 user_token 创建 cookie 的整个概念。
但我不明白是什么 self.current_user = user
意思,为什么还要保留这行代码——我有带有令牌的 cookie——为什么我需要知道当前用户?
此外,这个“自我”存储在哪里 - 它不像flash[:success]
我可以在我的一个视图中看到的参数。所以我不明白它在哪里。
同一模块中还有这两种方法:
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
我仍然试图将这个神秘的目的点点滴滴联系起来current user
——它的目的是创建@current_user
全局变量以在视图中使用吗?
如果是这样 - 为什么有这两个重复的功能def current_user=(user)
和def current_user