Ruby on rails 如何调试Rails 4 API ajax错误
好的,我已经使用Rails 4和Mongoid编写了一个API。我已经在我的用户模型中添加了一些验证,如密码不能为空、最小字符数等 当我尝试使用Angular JS app frontend通过ajax创建一个新用户,以及使用Postman测试API时,我从验证密码中得到所有错误,密码不能为空,名字不能为空,名字太短最小值为1个字符,姓氏不能为空,姓氏太短最小值为1个字符,电子邮件不能为空,电子邮件是无效的 这是我对用户模型的验证: 当我在控制器中使用以下代码返回参数时:Ruby on rails 如何调试Rails 4 API ajax错误,ruby-on-rails,ajax,angularjs,Ruby On Rails,Ajax,Angularjs,好的,我已经使用Rails 4和Mongoid编写了一个API。我已经在我的用户模型中添加了一些验证,如密码不能为空、最小字符数等 当我尝试使用Angular JS app frontend通过ajax创建一个新用户,以及使用Postman测试API时,我从验证密码中得到所有错误,密码不能为空,名字不能为空,名字太短最小值为1个字符,姓氏不能为空,姓氏太短最小值为1个字符,电子邮件不能为空,电子邮件是无效的 这是我对用户模型的验证: 当我在控制器中使用以下代码返回参数时: def create
def create
@user = User.new(user_params)
render json: { params: params, user: @user }
return
build_host_file(@user)
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render json: { success: true, user: @user } }
else
format.html { render :new }
format.json { render json: { success: false, message: @user.errors.full_messages.to_sentence }, status: :unprocessable_entity }
end
end
结束
PS:请注意,我在create controller中得到了一个返回值,这样我可以看到params变量中有什么
将参数呈现为json我得到以下结果:
{
"params": {
"user": {
"first_name": "FirstName",
"last_name": "LastName",
"domain": "www.example.com",
"password": "foobar",
"password_confirmation": "foobar",
"email": "something@email.com"
},
"controller": "api/users",
"action": "create",
"format": "json"
},
"user": {
"_role": "user",
"address_details": null,
"auth_token": null,
"bio": null,
"created_at": null,
"domain": null,
"email": null,
"first_log_in": true,
"first_name": null,
"last_login": null,
"last_name": null,
"notification_settings": null,
"password_digest": null,
"payment_details": null,
"remember_token": null,
"reset_digest": null,
"reset_sent_at": null,
"sign_in_count": null,
"sign_in_history": [],
"social_settings": null,
"stripe_details": null,
"telephone": null,
"theme": null,
"updated_at": null,
"id": "55eeb6bbfc7b340bdd000001"
}
}
你知道发生了什么事吗?为什么我在参数中获得所有信息时得到错误验证?您定义了用户参数吗?我定义了。我相信我发现了问题-强参数!!!-因为“让我头痛”是一个动态散列。我正在测试它。。。
{
"params": {
"user": {
"first_name": "FirstName",
"last_name": "LastName",
"domain": "www.example.com",
"password": "foobar",
"password_confirmation": "foobar",
"email": "something@email.com"
},
"controller": "api/users",
"action": "create",
"format": "json"
},
"user": {
"_role": "user",
"address_details": null,
"auth_token": null,
"bio": null,
"created_at": null,
"domain": null,
"email": null,
"first_log_in": true,
"first_name": null,
"last_login": null,
"last_name": null,
"notification_settings": null,
"password_digest": null,
"payment_details": null,
"remember_token": null,
"reset_digest": null,
"reset_sent_at": null,
"sign_in_count": null,
"sign_in_history": [],
"social_settings": null,
"stripe_details": null,
"telephone": null,
"theme": null,
"updated_at": null,
"id": "55eeb6bbfc7b340bdd000001"
}
}