Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4.2中的枚举验证没有';行不通_Ruby On Rails_Validation_Enums - Fatal编程技术网

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"
]