2つのユーザーモデルがあります。1つは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を定義しましたか?サインインしましたか?これは基本的に同じことをしますが..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
だから彼らは異なることをします....しかし、それらの2つを作る方法はあります...それははるかにクリーンであり、ユーザーの名前とGravatar画像を印刷するコメントシステムを作成しようとしているので、混乱しますそのためのコードの書き方については、gravatar_for @userを使用しており、fbユーザーに対してはgravatar_for@authenticateも実行する必要があるためです。
基本的にHartlの認証を使用し、Omniauthを統合しようとしています
質問が紛らわしいまたは不明確であるかどうか私に知らせてください、そして私はよりよく説明しようとします
ありがとうございました