我正在尝试在 Rails 3.2.8 中设置我的模型,以便必须存在特定值,但允许为空字符串。有谁知道如何做到这一点?
我正在寻找的行为看起来像:
@foo.value = "this is a real value"
@foo.valid? # => true
@foo.value = nil
@foo.valid? # => false
@foo.value = ""
@foo.valid? # => true
如果我使用
validates :foo, :presence => true
然后我得到了我想要的 1 和 2,但不是 3。而且,有用的是,在验证存在时:allow_blank => true
被忽略。
我也试过
validates :foo, :length => { :minimum => 0 }, :allow_nil => false
相同的行为:得到我想要的 1 和 2,但不是 3。
我想我可以将列标记为NOT NULL
数据库中的列,但是我必须处理捕获异常;我真的宁愿在验证阶段抓住这个。
有任何想法吗?