我正在使用Rails4,Devise用于身份验证,React.JS用于通过项目上的react-rails查看视图。
目前我正在尝试让自定义注册工作。我一步一步地遵循文档,定制到我的User/registrations_controller的路由,并使每件事都工作得很好。
我正在使用jquery从前端的表单中启动ajax。目前已经硬编码了一些用于测试的数据。
我现在收到一个422响应,说当我发送它时,它找不到密码和电子邮件。但是,它没有提到任何关于传入的其他值,所以它看起来仍然是默认的devise引擎……任何帮助都会很好,我知道devise以难以配置而闻名。
这是我的控制器函数-
def create
@user= User.new(configure_sign_up_params)
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { render :new }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end这是我的强参数函数-
def configure_sign_up_params
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email, :password, :password_confirmation) }
end这是我在JSOn.stringify之后发送的数据-
let formData =
{
"username": "test", // document.getElementById('username').value
"password": "1234",
"password_confirmation": "1234",
"email": "test@gmail.com",
"membership": "community"
}这是我在网络响应上得到的错误- 422,这个正文-
{"email":["can't be blank"],"password":["can't be blank"]}提前感谢!
发布于 2017-04-06 16:16:45
尝试将其发送为
{
user: {
"username": "test",
"password": "1234",
"password_confirmation": "1234",
"email": "test@gmail.com",
"membership": "community"
}
}因为devise执行类似于params(:user)的操作,并且返回nil,因为参数中没有用户键
https://stackoverflow.com/questions/36520633
复制相似问题