在rails活动记录验证中,除了错误消息外,还有什么方法可以返回错误代码?

王安迪|

在Rails ActiveRecord验证中,通常如果验证失败,它将在模型的errors属性中添加一条错误消息,但是我们的客户要求除错误消息外还返回错误代码,例如,我们有一个Bill模型,该模型具有一个msisdn属性,如果msisdn为null,则错误代码为101,如果msisdn不投诉采用MSISDN格式,则错误代码为102,当客户端通过REST接口提交请求时,如果验证失败,则应该返回一个json对象,例如

bill: {
    error_code: 101,
    error_message: "msisdn can't be null"
}

除了错误消息,是否有办法告诉activerecord生成错误代码?非常感谢。

陈慧琳

errors只是一个普通的哈希,键代表具有错误的属性,值代表错误消息。因此从技术上讲,您的要求是可行的,方法是将文本消息替换为哈希。但是缺点是您可能需要做更多的事情才能以新格式显示错误。

例如,使用自定义验证器添加错误代码

class Foo < ActiveRecord::Base
  attr_accessible :msiisnd
  validate :msiisdn_can_not_be_blank

  def msiisdn_can_not_be_blank
    if msiisdn.blank?
      errors.add(:msiisdn, {code: 101, message: "cannot be blank"})
    end
  end
end

然后用

foo = Foo.new
foo.errors.count
#=> 0
foo.valid?
#=> false
foo.errors.count
#=> 1
foo.errors[:msiisdn]
#=> [{ code: 101, message: "can not be blank"}]
foo.errors[:msiisdn][0][:code]
#=> 101

这样就可以使用它了。但是,当您需要正确显示错误(例如,以表格形式显示错误)时,您需要做更多的工作,因为这不是惯例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails:JSON中的验证错误代码

来自分类Dev

除了eval之外,还有什么方法可以防止我的perl脚本因错误而终止

来自分类Dev

在pytest中验证来自SystemExit的错误代码或消息

来自分类Dev

从方法返回错误代码

来自分类Dev

更新方法返回 200 OK 错误代码。验证失败时如何指定返回的错误代码

来自分类Dev

MVC:应该模型返回错误消息或错误代码

来自分类Dev

MVC:应该模型返回错误消息或错误代码

来自分类Dev

如何使Minitest错误代码也返回错误消息?

来自分类Dev

如何为验证消息使用不同的错误代码?

来自分类Dev

如何在bash中退出带有错误消息和错误代码的程序?

来自分类Dev

如何从psutil中捕获错误代码或错误消息

来自分类Dev

除了.gitignore之外,还有什么方法可以排除文件在Git中的跟踪?

来自分类Dev

除了隐式以外,还有什么方法可以在Scala 3中拉皮条吗?

来自分类Dev

除了&var = var类型以外,还有什么方法可以在C ++中声明引用?

来自分类Dev

如何从javax.servlet.filter doFilter方法返回JSON响应消息和HTTP错误代码?

来自分类Dev

是否可以以编程方式访问CoreBluetooth记录的错误代码?

来自分类Dev

从Grails命令对象验证返回特定的HTTP错误代码

来自分类Dev

SQL:如何为表中不存在的记录动态返回错误代码

来自分类Dev

如何找出为什么我的Rails控制器返回500错误代码?

来自分类Dev

除了意图之外,还有其他方法可以跨Android Studio中的活动发送数据

来自分类Dev

除了移动语义外,还有哪些C ++ 11功能可以提高我的代码的性能?

来自分类Dev

Rails REST Api身份验证错误代码500(在Heroku中,但不在本地)

来自分类Dev

在错误消息中返回自定义验证方法参数

来自分类Dev

表单验证错误和错误代码

来自分类Dev

表单验证错误和错误代码

来自分类Dev

如果程序崩溃,main 方法可以返回错误代码吗?

来自分类Dev

Rails测试用例:除了全局夹具之外,还有什么方法可以为特定的测试用例创建夹具?

来自分类Dev

除了eval之外,还有其他方法可以防止我的perl脚本因错误而终止

来自分类Dev

为什么wait()返回-1错误代码?

Related 相关文章

  1. 1

    Rails:JSON中的验证错误代码

  2. 2

    除了eval之外,还有什么方法可以防止我的perl脚本因错误而终止

  3. 3

    在pytest中验证来自SystemExit的错误代码或消息

  4. 4

    从方法返回错误代码

  5. 5

    更新方法返回 200 OK 错误代码。验证失败时如何指定返回的错误代码

  6. 6

    MVC:应该模型返回错误消息或错误代码

  7. 7

    MVC:应该模型返回错误消息或错误代码

  8. 8

    如何使Minitest错误代码也返回错误消息?

  9. 9

    如何为验证消息使用不同的错误代码?

  10. 10

    如何在bash中退出带有错误消息和错误代码的程序?

  11. 11

    如何从psutil中捕获错误代码或错误消息

  12. 12

    除了.gitignore之外,还有什么方法可以排除文件在Git中的跟踪?

  13. 13

    除了隐式以外,还有什么方法可以在Scala 3中拉皮条吗?

  14. 14

    除了&var = var类型以外,还有什么方法可以在C ++中声明引用?

  15. 15

    如何从javax.servlet.filter doFilter方法返回JSON响应消息和HTTP错误代码?

  16. 16

    是否可以以编程方式访问CoreBluetooth记录的错误代码?

  17. 17

    从Grails命令对象验证返回特定的HTTP错误代码

  18. 18

    SQL:如何为表中不存在的记录动态返回错误代码

  19. 19

    如何找出为什么我的Rails控制器返回500错误代码?

  20. 20

    除了意图之外,还有其他方法可以跨Android Studio中的活动发送数据

  21. 21

    除了移动语义外,还有哪些C ++ 11功能可以提高我的代码的性能?

  22. 22

    Rails REST Api身份验证错误代码500(在Heroku中,但不在本地)

  23. 23

    在错误消息中返回自定义验证方法参数

  24. 24

    表单验证错误和错误代码

  25. 25

    表单验证错误和错误代码

  26. 26

    如果程序崩溃,main 方法可以返回错误代码吗?

  27. 27

    Rails测试用例:除了全局夹具之外,还有什么方法可以为特定的测试用例创建夹具?

  28. 28

    除了eval之外,还有其他方法可以防止我的perl脚本因错误而终止

  29. 29

    为什么wait()返回-1错误代码?

热门标签

归档