4

Web アプリケーションに Web フォームを使用しながら、モバイル デバイスでの使用をトークンを使用して認証できるようにしようとしています。私はdevise_token_authを使うことにしました。アプリケーションを起動しようとすると、セッション パスが既に定義されているため、エラーが発生します。

エラー

ArgumentError: Invalid route name, already in use: 'new_provider_session' 

config/routes.rb

mount_devise_token_auth_for 'Provider', at: 'api/v1/auth'
  devise_for :providers, controllers: {} do
    get 'providers/sign_in', to: 'web/sessions#new'
    delete 'providers/sign_out', to: 'web/sessions#destroy'
  end
  root to: 'web/welcome#welcome'

  devise_for :admins, controllers: {} do
    get 'admins/sign_in', to: 'web/sessions#new'
    delete 'admins/sign_out', to: 'web/sessions#destroy'
  end
4

1 に答える 1

3

これを試して:

devise_token_authジェネレーターでプロバイダー リソースを生成する

$ rails g devise_token_auth:install Provider auth

次に、config/routes.rbこのルートを API バージョン管理用の名前空間内に配置するように変更します

namespace :api do
  namespace :v1 do
    mount_devise_token_auth_for 'Provider', at: 'auth'
  end
end

ルートを確認する

$ rake routes
于 2015-05-17T03:43:00.300 に答える