我有兩個用戶模型一個是 1 User.rb兩個用戶模式(這是我自己的身份驗證系統,該系統處理的用戶,只是我的網站中註冊。我使用Omniauth
- Authenticate.rb (這是爲那些希望通過Facebook上申請用戶OmniAuth認證。
林有一個很難處理這兩種模式.....例如這裏是我的導航代碼
- if fb_signed_in?
.nav.pull-right.padding-top
%li
- if fb_signed_in?
%li#fat-menu.dropdown
%a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#"}
%span
Signed in as
= fb_current_user.email
%ul.dropdown-menu
%li= link_to "Profile", "#"
%li.divider
%li= link_to "Sign out", leave_path, method: "get"
- else
.nav.pull-right
%span.light_color Already a Member?
= link_to "Sign in", signin_path, class: 'light_color'
%span.light_color or
= link_to "Sign up", signup_path, class: 'light_color'
- else
.nav.pull-right.padding-top
%li
- if signed_in?
%li#fat-menu.dropdown
%a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#"}
%span
Signed in as
= current_user.email
%ul.dropdown-menu
%li= link_to "Profile", "#"
%li.divider
%li= link_to "Sign out", signout_path, method: "get"
- else
.nav.pull-right
%span.light_color Already a Member?
= link_to "Sign in", signin_path, class: 'light_color'
%span.light_color or
= link_to "Sign up", signup_path, class: 'light_color'
所以我定義了一個fb_signed_in?還有一個signed_in?這基本上做同樣的事情though..also與CURRENT_USER和fb_current_user但繼承人兩個
CURRENT_USER
def current_user
@current_user = @current_user ||
User.find_by_remember_token(cookies[:remember_token])
end
的代碼,這是fb_current_user
def fb_current_user
@fb_current_user ||= Authenticate.find(session[:user_id]) if session[:user_id]
end
所以他們做不同的事情....但有沒有辦法讓這兩個人...因爲它會更清潔,我試圖創建一個評論系統,將打印用戶名和gravatar圖像和即時通訊如何編寫代碼因爲它使用gravatar_for @user,我也必須爲fb用戶做gravatar_for @authenticate。
林基本上都是採用哈特爾的身份驗證,並試圖Omniauth與之集成
請讓我知道如果問題是混淆或不清楚,我會盡量解釋更好
謝謝
爲什麼你有'if fb_signed_in?'嵌套在另一個'if fb_signed_in?'塊中?任何情況下都不會在那裏達到'else'條件。 –
你也可以發佈你的'signed_in?'和'fb_signed_in?'代碼嗎? –