Rails: Validating min and max length of a string but allowing it to be blank

bgadoci picture bgadoci · Dec 14, 2010 · Viewed 82.7k times · Source

I have a field that I would like to validate. I want the field to be able to be left blank, but if a user is entering data I want it to be in a certain format. Currently I am using the below validations in the model, but this doesn't allow the user to leave it blank:

validates_length_of :foo, :maximum => 5
validates_length_of :foo, :minimum => 5

How do I write this to accomplish my goal?

Answer

DigitalRoss picture DigitalRoss · Dec 14, 2010

I think it might need something like:

validates_length_of :foo, minimum: 5, maximum: 5, allow_blank: true

More examples: ActiveRecord::Validations::ClassMethods