我想了解这段代码ruby on rails教程中使用self.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
使用线
self.current_user = user
将它创建一个名为CURRENT_USER为类SessionsController(以上模块属于SessionsController类)的变量?
如果我使用
@current_user = user
,而不是上面的行,代码似乎工作方式不尽相同。怎么样?!
非常感谢您的时间。
他们在这种情况下相当,但只是想指出,如果有在CURRENT_USER任何附加逻辑=(),然后只设置@current_user =用户在sign_in()方法将绕过它。 – xkickflip 2013-03-25 06:55:29
你能澄清一下类是'self'指什么?模块'SessionsHelper'包括在'ApplicationHelper',所以我不知道'在不同的控制器配合使用时self'仍然是指同样的事情? – Heisenberg 2014-06-05 20:26:36