Как проверить валидацию с условным условием? - PullRequest
1 голос
/ 31 августа 2011

Как мне проверить проверку с условным выражением, подобным этому:

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 не оценивается.

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Вы пробовали :allow_nil => true вместо условия :if?

1 голос
/ 31 августа 2011

Вы на самом деле написали метод под названием "возраст"?

Я думаю, что то, что вы пытаетесь сделать, на самом деле покрыто:

 validates :age, :numericality => true, :allow_nil => true
...