需要做ajax侧注册与设计。创建RegistrationsController:
class RegistrationsController < Devise::RegistrationsController
def create
if request.xhr?
build_resource(sign_up_params)
if resource.save
...
end
else
super
end
end
end注意,如果我没有在XHR中传递该字段,或者字段是空的,那么该模型不会验证密码的确认,并且在执行$http.post之前,角不会收集它。
黑客攻击了它一段时间的角度,硬编码的初始$scope.reg = {'password_confirmation': ''},但不知道我如何解决这一正常的方式?
发布于 2014-01-05 20:21:20
一旦您正确地设置了Devise,您的模型的密码确认不太可能被验证。如果注册实际上创建了一个新用户,那么您将确定是否没有运行验证。如果它没有创建一个新用户,那么验证就能正常工作。
问题似乎在于您的create操作。看起来您的if resource.save没有一个else块,这就是当resource.save由于验证错误而失败时所调用的。您的create操作应该如下所示:
def create
# seems unnecessary to check if request is xhr
build_resource(sign_up_params)
if resource.save
render json: resource
else
render :json => { :errors => @model.errors.full_messages }, :status => 422
end
end然后,只要有角度的代码,通过通知用户来处理错误。
https://stackoverflow.com/questions/20938071
复制相似问题