我的api中的一个模型中有一个枚举
enum pay_method: {
cash: 0,
card: 1
}
我想对此枚举进行验证,但我无法做到这一点。我在我的模型中为此写了一个验证,但它没有产生任何影响
答案 0 :(得分:3)
对枚举的验证不起作用,因为Rails甚至不允许使用错误的值分配枚举变量。验证前您将收到错误消息。这里有一个很好的讨论这种行为https://github.com/rails/rails/issues/13971
答案 1 :(得分:0)
rails枚举功能会引发错误。在这种情况下,它与密钥不对应,因为您提交的值是一个字符串,因此在此之前您是正确的。
错误仍然出现,因为在验证过程之前设置了枚举。这可以帮助您理解
@shippimg = Shippig.first
@shipping.status = 99
ArgumentError: '99' is not a valid status
rails开发人员说,程序员负责处理他们使用哪些值来确定枚举属性
我已经制作了一个用于验证枚举包含的宝石。这至少可以阻止您的服务器崩溃https://github.com/CristiRazvi/enum_attributes_validation