Rails:使用json返回错误消息

时间:2012-10-31 17:14:20

标签: ruby-on-rails json

我的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"]}

如何检查是否是因为电子邮件错误或控制器中的密码错误?谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用@ user.errors [:field_name]检查特定字段的错误。检查特定字段是否无效的快速方法是使用.any?

@user.errors[:field_name].any?

如果此字段存在任何问题,则返回true。

答案 1 :(得分:-1)

  • 转到rails console
  • 类型:u = User.new
  • type:u.valid?
  • type:u.errors

检查结果。你应该能够搞清楚。

或者阅读文档:http://api.rubyonrails.org/classes/ActiveModel/Errors.html

提示:错误只是一个OrderedHash对象,有一些额外的便利方法,比如full_messages。它包含您正在寻找的所有信息,而不是在full_messages中。