我正在尝试在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
是有帮助的。
我也试过
NOT NULL
相同的行为:得到我想要的1和2,但不是3。
我想我可以在数据库中将列标记为{{1}},但是我必须处理捕获异常;我真的很想在验证阶段抓住它。
有什么想法吗?
答案 0 :(得分:1)
我会尝试这样的事情:
validates :foo, presence: true, unless: lambda { |f| f.foo === "" }