2014-10-04 74 views
0

我正在學習ROR,我在用戶儀表板區域中呈現了一些局部側欄,並且我在儀表板中返回用戶名稱,如下所示。最初儀表板佈局僅包含在用戶控制器中。但現在我需要用一個新的控制器使用它如何從cookie會話數據(RAILS)中檢索用戶名

<h1>Welcome Back, <%= @user.name %> </h1> 

,所以我把它改成

<h1>Welcome Back, <%= current_user %> </h1> 

但現在的問題是,而不是返回的用戶名,CURRENT_USER返回該

#<User:0x007fa8ee293940> 
我假設的

是remember_token散列。現在,由於current_user已經有會話cookie,我不知道如何遍歷數據庫以獲取用戶名。有人可以幫我調整current_user,這樣它會得到當前會話用戶,但返回用戶名嗎?

謝謝!

這裏是我的會話幫手

def sign_in(user) 
     remember_token = User.new_remember_token 
     cookies.permanent[:remember_token] = remember_token 
     user.update_attribute(:remember_token, User.digest(remember_token)) 
     self.current_user = user 
    end 

    def current_user= (user) 
     @current_user = user 
    end 

    def current_user 
     remember_token = User.digest(cookies[:remember_token]) 
     @current_user || User.find_by(remember_token: remember_token)  
    end 

回答

1

<User:0x007fa8ee293940> 是用戶對象的字符串表示。您需要該對象的名稱屬性,類似於您之前所做的(@ user.name)。而不是current_user,current_user.name應該這樣做。

+0

AH OMG!謝謝!你是完全正確的! – 2014-10-04 19:19:52