我目前正在使用Rails API应用程序上的devise插件来实现devise-jwt。我已经为设计添加了必要的配置,但是当涉及到路由时,注册路径似乎并不存在.
当我运行rails routes时,我得到了以下输出:
new_user_session GET /login(.:format) sessions#new
user_session POST /login(.:format) sessions#create
destroy_user_session DELETE /logout(.:format)下面是我的app/config/routes.rb文件的样子:
Rails.application.routes.draw do
devise_for :users,
path: '',
path_names: {
sign_in: 'login',
sign_out: 'logout',
registration: 'signup'
},
# i use my own custom controllers for this
controllers: {
sessions: 'sessions',
registrations: 'registrations'
}
end我正在使用我自己的会话/注册,如下所示:
会话控制器
# app/controllers/sessions_controller.rb
class SessionsController < Devise::SessionsController
private
def respond_with(resource, _opts = {})
render json: resource
end
def response_to_on_destroy
head :no_content
end
end注册控制器
# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
respond_to :json
def create
build_resource(sign_up_params)
resource.save
render_resource(resource)
end
end发布于 2018-10-07 23:54:20
您需要在用户模型中添加:registerable。我不知道您的模型是什么样子的,但是在设计模块组中,要确保:registerable在那里。
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, <-- This one
:recoverable, :rememberable, :trackable, :validatable, :confirmable, :lockablehttps://stackoverflow.com/questions/52693850
复制相似问题