ユーザーが Rails 3.2 アプリで複数のプロバイダーにサインインできるようにするために、Devise と Omniauth を使用しようとしています。私はそれを機能させましたが、すべてのプロバイダーを create メソッドに移動させたいコントローラーの twitter、facebook、または tumblr メソッドに移動した場合のみです。これを行うためのルートは次のとおりです: match '/auth/:provider/callback' => 'authentications#create'
resources :authentications
match '/auth/:provider/callback' => 'authentications#create'
devise_for :users, path_names: {sign_in: "login", sign_out: "logout"},
controllers: {omniauth_callbacks: "authentications"}
root to: 'authentications#index'
私のレーキ ルートは次のように表示されます。
user_omniauth_authorize /users/auth/:provider(.:format) authentications#passthru {:provider=>/twitter|facebook|tumblr/}
user_omniauth_callback /users/auth/:action/callback(.:format) authentications#(?-mix:twitter|facebook|tumblr)
特定のプロバイダーではなく、authentications#create への user_omni_auth_callback ルートが必要です。現在のセットアップでは、「AuthenticationsController のアクション 'twitter' が見つかりませんでした」というメッセージが表示されます。これを行う最善の方法は何ですか?