2011-01-19 49 views
0

我正在關注的邁克爾·哈特爾教程和我被困在第9章紅寶石由邁克爾·哈特爾Rails的教程 - 第9章 - 紅寶石2.3

我需要此功能工作:

高清signed_in? !current_user end

但這個函數總是返回false 即使我登錄了。 對不起,這個簡單的問題, ,但我是一個begginer,也花了很長的時間嘗試弄明白。 我使用的是紅寶石1.8.7和導軌2.3.8

感謝先進!

回答

1

我懷疑的代碼應閱讀

def signed_in? 
    current_user 
end 

在通話前放置一個!current_user可以讀作「如果不是在CURRENT_USER返回true」。

您的代碼在SessionsHelper中有一個錯字。 :remember_token Cookie不會在sign_in方法中保存。它應該是:

def sign_in(user) 
    user.remember_me! 
    cookies[:remember_token] = { :value => user.remember_token, 
           :expires => 20.years.from_now.utc } 
    self.current_user = user 
end 

不是:remember_toker

+0

嗨,我試過!current_user,也用!! current_user和任何!!沒有工作。我仍然無法看到我是否登錄。 – Heber 2011-01-19 15:13:09

0

我有類似的問題,並決定向後工作。 1)def signed_in? !current_user.nil? end。因此,我查找了與登錄關聯的current_user的定義&

2)此處:def sign_in(user) cookies.permanent.signed[:remember_token] = [user.id, user.salt] self.current_user = user end。對我來說,令牌拼寫錯誤並修復了它。

1

您必須添加.nil?到current_user是這樣的:

def signed_in? 
    !current_user.nil? 
end