Ruby on rails Rails 4.2中的枚举验证没有';行不通
我的用户模型与此类似:Ruby on rails Rails 4.2中的枚举验证没有';行不通,ruby-on-rails,validation,enums,Ruby On Rails,Validation,Enums,我的用户模型与此类似: class User < ActiveRecord::Base enum type: [:admin, :reviewer, :super_admin ] validates :type, presence: true validates :type, inclusion: { in: User.types.keys } end 如果我提交一个空白字段,则验证工作: "type": [ "can't be blank", "is not
class User < ActiveRecord::Base
enum type: [:admin, :reviewer, :super_admin ]
validates :type, presence: true
validates :type, inclusion: { in: User.types.keys }
end
如果我提交一个空白字段,则验证工作:
"type": [
"can't be blank",
"is not included in the list"
]
我做错了什么?我的代码看起来与
AR枚举当前的重点是将一组状态(标签)映射到
出于性能原因,请输入整数。当前正在分配错误的状态
认为是应用程序级错误,而不是用户输入错误。
这就是为什么你会犯错误
您仍然可以将
nil
或空字符串设置为enum
属性,而不会引发错误。谢谢。对于这种情况,什么是最佳做法?有user\u types表和user.type\u id外键属性吗?@Vasile抱歉,我不能给你最好的建议,我不知道你试图解决什么任务。给我一个完整的图片=)我有三种类型的用户,管理员可以通过提交表单添加用户。将有一个用户类型的下拉列表,但我只是想确保它也是经过验证的服务器端。看起来很奇怪,你不能验证一个值是否是数组的一部分。有一个gem在指定的枚举属性上添加了一个验证器。这将在属性上添加活动模型错误消息,而不是引发错误。
"type": [
"can't be blank",
"is not included in the list"
]