我有两个用户模型,一个是 1. User.rb(这是我自己的身份验证系统,用于处理刚刚在我的站点中注册的用户。
- 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?添加一个已签名的_in?虽然它基本上做同样的事情..也与 current_user 和 fb_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。
我基本上使用 Hartl 的身份验证并尝试将 Omniauth 与之集成
如果问题令人困惑或不清楚,请告诉我,我会尝试更好地解释
谢谢你