我的rails应用程序充当我的Android应用程序的API。 我想知道请求何时遇到任何问题,有没有办法检测它在服务器端的错误并返回特定的代码?
例如,在我的users_controller.rb
,
if @user.save
respond_with(@user)
else
render json: {errors: @user.errors.full_messages}
end
输出如下:
{"errors":["Username can't be blank","Password is too short (minimum is 6 characters)","Email has already been taken"]}
如何检查是否是因为电子邮件错误或控制器中的密码错误?谢谢!
答案 0 :(得分:1)
您可以使用@ user.errors [:field_name]检查特定字段的错误。检查特定字段是否无效的快速方法是使用.any?
即
@user.errors[:field_name].any?
如果此字段存在任何问题,则返回true。
答案 1 :(得分:-1)
检查结果。你应该能够搞清楚。
或者阅读文档:http://api.rubyonrails.org/classes/ActiveModel/Errors.html
提示:错误只是一个OrderedHash对象,有一些额外的便利方法,比如full_messages。它包含您正在寻找的所有信息,而不是在full_messages中。