帮手的属性 validates_length_of

Attributes of the helper validates_length_of

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

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

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

validates_length_of :field, is: 14 || 18

代码片段不会产生错误,但只取第一个值

在你的代码中 || 是 ruby 布尔值 or 运算符,它 returns 第一个参数如果它是 non-falsey 否则第二个参数。

长度验证器不接受当前 rails 中 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