【问题标题】:Validate attribute's length if present验证属性的长度(如果存在)
【发布时间】:2015-07-04 23:11:25
【问题描述】:

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

【问题讨论】:

  • 你的 Rails 版本是多少?
  • 4.2.0,为什么这么问?
  • unless: 的示例在 Rails 版本中具有不同的语法

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


【解决方案1】:

您可以使用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: -> (item) { item.blank? }

【讨论】:

    猜你喜欢
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    相关资源
    最近更新 更多