¿Cómo validar la numeralidad y la inclusión y al mismo tiempo permitir que el atributo sea nulo en algunos casos?

En una aplicación de Rails tengo varios atributos enteros en un modelo.

Un usuario debe poder crear un registro y dejar estos atributos en blanco.

O, si el usuario ingresa valores para estos atributos, deben validarse por su valor numérico y dentro de un cierto rango.

En el modelo tengo algo como esto.

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."

Si ahora pruebo con los atributos mínimos requeridos para guardar:

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

yo obtengo

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

¿Cómo puedo validar la numeralidad y la inclusión solo si se da un valor para:a, mientras se sigue permitiendo:a ser nulo en algunos casos?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta