【发布时间】:2018-05-02 23:15:36
【问题描述】:
我想验证一个字符串属性不是 nil,而是允许空字符串。
如:
validates name: not_nil, allow_empty: true
【问题讨论】:
标签: ruby-on-rails ruby validation activerecord
我想验证一个字符串属性不是 nil,而是允许空字符串。
如:
validates name: not_nil, allow_empty: true
【问题讨论】:
标签: ruby-on-rails ruby validation activerecord
你也可以这样做:
validates :name, exclusion: { in: [nil] }
【讨论】:
要允许空字符串,但在活动记录验证回调中拒绝 nil,请使用条件 proc 有条件地要求属性存在(如果它不是 nil)。
所以代码看起来像:
validates :name, presence: true, if: proc { name.nil? }
但您可能希望允许 null。然后不验证。还在检查存在吗?在 nil 或空字符串的代码中。
【讨论】:
validates presence: true 非常令人困惑。这与验证器的意图相反。
或者
validates :name, presence: true, allow_blank: true
【讨论】:
allow_blank 也将允许 nil 值,即使是 presence: true。