我想了解這段代碼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