DeviseベースのレールアプリでFacebook Connectを使用するためにOmniAuthを使用しています。それが作成するルートの一つは、次のとおりです。Deviseはuser_omniauth_callbackルートを変更します
user_omniauth_callback /users/auth/:action/callback(.:format) {:action=>/facebook/, :controller=>"devise/omniauth_callbacks"}
私はカスタムURLにこのルートを修正したいと思います。それを行うための正しい場所はどこですか?
問題はデフォルトでは、作成するルートはhttp://foo/users/auth/:action/callback.formatです。私はhttp://foo/prefix_path/users/auth/:action/callback.formatのようなカスタムを持っていたい。私は私のルートファイルは次のようになり作ってみました:
scope "/mypath" do
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
end
が、それはまだ間違ったルートを生成します。
user_omniauth_callback /users/auth/:action/callback(.:format) {:action=>/facebook/, :controller=>"users/omniauth_callbacks"}
上記の質問を更新して、カスタムルートの意味を詳しく説明しました。 – randombits
あなたの質問をよりよく反映するように答えが更新されました。 – Olives
@Olives、私は似たような立場にいる。私たちは、レールアプリをサーバ上のサブディレクトリに配備しています。 'https:// www.example.com/subdir /'と異なるサーバー上では異なるサブディレクトリにある可能性があるので、パスをハードコーディングすることはできません。 :pathオプションについてのあなたの答えは魅力的ですが、パスはハードコードされています。あなたの答えをありがとう、しかし、私は両方のオプションを試してみましょう。 – Wodin