Como validar a numericidade e a inclusão enquanto ainda permite que o atributo seja nulo em alguns casos?

Em um aplicativo Rails eu tenho vários atributos inteiros em um modelo.

Um usuário deve ser capaz de criar um registro e deixar esses atributos em branco.

Ou, se o usuário inserir valores para esses atributos, eles devem ser validados para numericidade e dentro de um determinado intervalo.

No modelo eu tenho algo parecido com isso

validates_presence_of :name    
validates_numericality_of :a, :only_integer => true, :message => "can only be whole number."
validates_inclusion_of :a, :in => 1..999, :message => "can only be between 1 and 999."

Se agora testar com os atributos mínimos necessários para salvar:

factory :model do
  sequence(:name) { |n| "model#{n}" }
end

it "should save with minium attributes" do
  @model = FactoryGirl.build(:model)
  @model.save.should == false
end

eu recebo

Validation failed: a can only be whole number., a can only be between 1 and 999.

Como posso validar a numericidade e inclusão apenas se um valor é dado para:a, enquanto ainda permite:a ser nulo em alguns casos?

obrigado

questionAnswers(2)

yourAnswerToTheQuestion