我正在尝试使用Devise和Omniauth允许用户使用Rails 3.2应用登录多个提供商。我得到了它的工作,但只有它在控制器中的twitter,facebook或tumblr方法,我希望所有提供商转到创建方法。这就是我有这样做的路线:匹配'/ auth /:provider / callback'=> '认证#创建'
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)
我希望user_omni_auth_callback路由到身份验证#create而不是特定的提供者。使用当前的设置,我得到“无法找到AuthenticationsController的动作'twitter',因为我没有包含它。最好的方法是什么?