帮助器validates_length_of
中是否有任何属性可以使被测试的字段仅接受2个固定大小之一,例如10和12?
万一用户发送的值11将不被接受。
我已经研究了一些属性,但一无所获
我试图运行的代码是这样的:
validates_length_of :field, is: 14 || 18
该代码段不会产生错误,而只会采用第一个值
答案 0 :(得分:0)
在您的代码||
中是ruby布尔or
运算符,如果它不是非false,它将返回第一个参数,否则返回第二个。
长度验证器在当前轨道中不接受is
的数组,因此对于您而言,您必须编写一个自定义验证器:
validate :length_of_my_field
private def length_of_my_field
errors.add(:field, "should have length of 12 or 18") unless [12, 18].include?(field.size)
end