我使用的是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例如,现在我想要更改/api/v1/auth/signing_up的默认注册URL,但是当我将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".发布于 2019-08-28 13:11:41
我正在使用这个不同类型的注册,它工作得很好,
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
endhttps://stackoverflow.com/questions/51860705
复制相似问题