助手的属性validates_length_of

时间:2019-05-21 12:32:40

标签: ruby-on-rails helper

帮助器validates_length_of中是否有任何属性可以使被测试的字段仅接受2个固定大小之一,例如10和12? 万一用户发送的值11将不被接受。

我已经研究了一些属性,但一无所获

我试图运行的代码是这样的:

validates_length_of :field, is: 14 || 18

该代码段不会产生错误,而只会采用第一个值

1 个答案:

答案 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