Check out the ActiveModel::Validations::NumericalityValidator: RailsAPI NumericalityValidator
spec:
it {
subject.max_age = 10
subject.min_age = 20
subject.should be_invalid
subject.errors[:min_age].should include("must be less than or equal to #{subject.max_age}")
}
code:
validates :min_age, numericality: { greater_than: 0, less_than_or_equal_to: :max_age }
validates :max_age, numericality: { less_than_or_equal_to: 100 }
I don't know if you want to validate presence or not, but you would just add that as another key to your validations, e.g.
validates :max_age, numericality: { less_than_or_equal_to: 100 }, presence: true
You can also use inclusion...in, as in:
validates :height, inclusion: { in: 1..3000, message: 'The height must be between 1 and 3000' }
validates_numericality_of :min_age, greater_than: 0
validates_numericality_of :max_age, less_than_or_equal_to: 100
validates_numericality_of :max_age, greater_than: :min_age
You can also use age, like this:
validates_numericality_of :age, less_than_or_equal_to: 100, greater_than: 0
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With