我应该如何使用这样的条件测试验证:
validates :age, :numericality => true, :if => :age?
这就是我现在所拥有的:
before(:each) do
@attr = { :age => "30" }
end
it "should require a age if present" do
Model.new(@attr.merge(:age => "foo").should_not be_valid
end
错误信息是:
expected valid? to return false, got true
但是这样做,if
不会被评估。
答案 0 :(得分:2)
您是否尝试过:allow_nil => true
而不是:if
条件?
答案 1 :(得分:1)
你真的写过一个名为“年龄?”的方法吗? ?
我认为你想要做的事实上是:
validates :age, :numericality => true, :allow_nil => true