我正在试着理解这段代码
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使用这行代码
self.current_user = user它是否会为SessionsController类创建一个名为current_user的变量(上面的模块属于SessionsController类)?
如果我使用
@current_user = user代码似乎以完全相同的方式工作,而不是上面的一行。怎么做?!
非常感谢您的宝贵时间。
发布于 2013-03-25 14:06:10
self.current_user = user只是调用方法current_user=(user),而该方法只做@current_user = user,所以如果你做@current_user = user,它的工作原理是一样的。
发布于 2015-05-07 14:54:16
self.current_user = user,这个表达式是为了表明current_user是类Sessions (通过模块SessionsHelper混合)中的方法,而不是局部变量。self表示类Sessions,所以这一行只是一个方法调用,与@current_user = user或current_user=(user)的效果相同。
https://stackoverflow.com/questions/15608598
复制相似问题