2016-03-15 22 views
2

我在應用程序中使用devise和ldap來驗證用戶身份。我已經設置了用戶模型以及設計。我可以正確登錄並註銷用戶,但無法訪問構建於幫助程序中的設備的任何信息;當前用戶。如何通過Devise訪問當前用戶

我希望應用程序的主頁在頁面頂部顯示當前用戶名。我在用戶表中創建了名爲display_name的列。

這是我想要的工作代碼:當我用byebug並嘗試訪問返回零當前用戶

<% if user_signed_in? %> 
<div> <%= current_user.display_name %> </div> 
<% end %> 

有沒有人有關於如何訪問當前用戶信息的建議?

更新

我嘗試使用:<% if signed_in %> ,但我仍然得到同樣的錯誤:未定義的方法`DISPLAY_NAME」的零:NilClass

+0

嘗試'<%if signed_in? %>'而不是'<%user_signed_in? %>' – trh

+0

看到我的帖子更新。 – saltlife31496

回答

0

您正在使用哪個LDAP寶石? devise_ldap_authenticatable

您需要在您的ApplicationController中定義一個實例變量@current_user,並根據經過身份驗證的LDAP帳戶將其設置爲正確的用戶記錄。

然後,在登錄過程中,您需要設置@current_user的值,並且在註銷期間您需要將其設置爲零。

所以對於登錄和註銷,你將不得不實現這個在活動#創建和活動#破壞

+0

我剛剛爲current_user定義了實例變量,如何在登錄過程中設置它,並將其設置爲無登出? – saltlife31496

+0

https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes – Tilo

0

devise文件說:

If your devise model is something other than User, replace "_user" with "_yourmodel".

是型號User?如果不是,則需要使用適當的輔助方法。

相關問題