In un'applicazione Rails ho diversi attributi interi su un modello.In alcuni casi, come convalidare la numericalità e l'inclusione pur consentendo l'attributo nullo?
Un utente deve essere in grado di creare un record e lasciare questi attributi vuoti.
Oppure, se l'utente immette i valori per questi attributi, devono essere convalidati per la numericità e all'interno di un determinato intervallo.
Nel modello che ho qualcosa di simile
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 io ora prova con gli attributi minimi richiesti per salvare:
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
ottengo
Validation failed: a can only be whole number., a can only be between 1 and 999.
Come posso convalida la numericalità e l'inclusione solo se viene fornito un valore per :a
, pur consentendo ancora :a
in alcuni casi essere nullo?
Grazie
grazie, ottima risposta –