2011-08-31 139 views
1

我應該如何測試驗證,具有一個條件是這樣的:如何使用條件測試驗證?

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未被評估。

回答

1

您是否真的寫過一個名爲「age?」的方法? ?

我認爲你正在試圖做的實際上是由保什麼:

validates :age, :numericality => true, :allow_nil => true 
+1

哦,不知道這個選項。這工作,謝謝。 –

2

你試過:allow_nil => true代替:if條件?