如果存在,则验证属性的长度

7
如何进行验证,其中模型属性的存在并不是必需的,但如果它存在,则属性长度必须超过三个字符?

你的Rails版本是什么? - potashin
4.2.0,你为什么问? - Alek
在 Rails 版本 < 4 中,使用 unless: 的示例语法不同。 - potashin
1个回答

10

您可以使用allow_blank: trueallow_nil: true使属性为空,并且还可以检查length:

validates :attr, length: { minimum: 4 }, allow_blank: true
validates :attr, length: { minimum: 4 }, allow_nil: true

你还可以使用 if: 或者 unless:

validates :attr, length: {minimum: 4}, unless: -> (item) { item.blank? }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接