2

Omniauthを私のレール3.1プロジェクトに追加しました。すべて正常に動作します。私がhostname/auth/facebookにアクセスしたとき、私はあなたが期待するように自分のFacebookアカウントへのアクセスを許可することができるページに移動しました。Omniauth認証ルートに名前を付けることはできますか?

ので、私のlink_toヘルパーに私は

<%= link_to 'Login with Facebook', facebook_login_path %> 

代わりの

<%= link_to 'Login with Facebook', '/auth/facebook' %> 

ない私が知っているが、私が好きな巨大なものを書くことができますが、私はそのルートに名前を付けることができる場合、私は思ったんだけど一貫性。

+0

ようにあなたは試してみました?: :facebook_login – bor1s

+0

ええ、私はそれを試しました、それは私が "/ auth"コントローラにマッチしていると思ってエラーが発生して失敗しました、そして、/ auth/facebook 'コントローラはスラッシュで開始できません。スラッシュがなければ、認証コントローラがないので失敗します。 –

+0

はい、 'route.rb'ファイルをRails内部で使用する必要があります(受信したHTTPリクエストをRESTスタイルに変換するだけです(それを処理するコントローラとアクションが必要です))。 OAuth/OpenIDの場合、外部サービスにリクエストを送信します。あなたができることは、 'application_helper'ファイルでヘルパーメソッドを作成することです(def facebook_login_path"/auth/facebook "; end) – bor1s

答えて

3

通常は、このようなものだろう:あなたのroutes.rbをファイルで:

get "auth/facebook", :to => "controller#action", :as => "facebook_login" 

をしかし、この場合には、あなたがに送信されたURLは、実際にアプリケーションのURLの一部ではありません - しかし、 FacebookのためのoauthのURL。したがって、そのルートを作成することはできません。

あなたができる唯一のこと - を指摘上記のコメント投稿などは - あなたのヘルパーファイルのいずれかにヘルパーメソッドを作成することですが - アプリ/ヘルパー/ application_helper.rb

def facebook_login_path 
    "/auth/facebook" 
end 
関連する問題