2010-12-09 129 views

回答

7

@current_userinstance variableself.current_user調用返回該實例變量在第10行的方法中,第一填充它,如果它是目前NIL。

4

@current_user訪問而self.current_user呼籲selfcurrent_user方法的對象的實際屬性。

這意味着你可以做這樣的事情:

def current_user 
    @current_user.first_name 
end 

所以現在訪問@current_user仍然會給你的財產,但self.current_user會給你回的只有名字。

在你的具體的例子,他們正在使用對象緩存設置@current_user屬性僅在第一次被訪問。這意味着,如果@current_user是零,它會做(login_from_session || login_from_basic_auth || login_from_cookie)否則只會返回現有對象,而無需重新初始化。

1
@current_user 

取消引用名爲@current_user的實例變量。

self.current_user 

將消息發送到:current_userself

相關問題