验证属性的长度(如果存在)

时间:2015-04-26 15:48:05

标签: ruby-on-rails ruby-on-rails-4 activerecord rails-activerecord ruby-on-rails-4.2

如何在不存在模型属性的情况下进行验证,但如果存在,属性的长度必须超过三个字符?

1 个答案:

答案 0 :(得分:6)

您可以允许allow_blank: truenil allow_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: -> (o) do o.blank? end