0

我正在使用运行良好的gem devise-token-auth

目前,为了注册,我使用原始路线,/api/v1/auth在我的情况下:

# routes.rb
namespace :api do
  namespace :v1 do
    mount_devise_token_auth_for 'User', as: 'v1', at: 'auth', controllers: {
      token_validations:  'api/v1/users/token_validations',
      confirmations:      'api/v1/users/confirmations',
      registrations:      'api/v1/users/registrations',
      passwords:          'api/v1/users/passwords',
      sessions:           'api/v1/users/sessions'
    }
  end
end

例如,现在我想更改默认注册 URL /api/v1/auth/signing_up,但是当我将这post一行添加到文件中时,即使rails routes返回我想要的内容,我也会收到错误消息:

# routes.rb
post "/auth/signing_up" => "users/registrations#create"

# rails routes
# Default route
api_v1_user_registrationPOST   /api/v1/auth(.:format)                  api/v1/users/registrations#create
# New created route
api_v1_auth_signing_up POST   /api/v1/auth/signing_up(.:format)       api/v1/users/registrations#create

# Error when POST
AbstractController::ActionNotFound (Could not find devise mapping for path "/api/v1/auth/signing_up".
4

1 回答 1

0

我将它用于不同类型的注册,效果很好,

namespace :api, constraints: { format: 'json' } do
    namespace :v1 do
      devise_scope :user do
        post 'auth/teacher_sign_up', to: 'registration#teacher_sign_up'
      end

      devise_scope :user do
        post 'auth/student_sign_up', to: 'sessions#teacher_sign_up'
      end
    end
end
于 2019-08-28T05:11:41.427 回答