2016-10-25 8 views
1

私はOAuth 2 gemを使ってGoogleとFacebookから認証しています。 アプリケーションからログアウトするときに、GoogleとFacebookからログアウトする必要があります。 OAのドキュメントでは、次のように述べています。OAuthとRailsを使ったログアウト

devise_scope :user do 
delete 'sign_out', to: 'devise/sessions#destroy', as: :destroy_user_session 
end 

routes.rbにこれを追加します。私はそれをしなかった、私の敗走は次のようになり、今rbは:

Rails.application.routes.draw do 
    devise_for :users, controllers: { omniauth_callbacks: 'callbacks' } 
    devise_scope :user do 
    delete 'sign_out', to: 'devise/sessions#destroy', as: :destroy_user_session 
    end 

私はこの行を追加すると私はレールの私のアプリケーションにしようとすると、私はエラーを得た:

/ユーザ/ damirik /。 rvm/gems/ruby​​-2.3.0/gems/actionpack-5.0.0.1/lib/action_dispatch/routing/route_set.rb:507:add_route': Invalid route name, already in use: 'destroy_user_session' (ArgumentError) You may have defined two routes with the same name using the:asオプションを使用するか、またはリソースによって既に定義されているルートを上書きしている可能性があります。同じ命名法。

私は本当にそれを修正する方法を理解していません。ヘルプ

+0

'rake routes'ですべてが正しいかどうか確認しましたか? – Sebastian

答えて

3

devise_forメソッドのドキュメントを見ると、既に正確なdelete 'sign_out'ルートが追加されていることがわかります。

これはコードを動作させるのに十分なはずです。

Rails.application.routes.draw do 
    devise_for :users, controllers: { omniauth_callbacks: 'callbacks' } 
end 
関連する問題