it-swarm-eu.dev

Comment implémenter le validateur min / max dans Rails 3?

Quelle est la manière Rails d'implémenter un validateur min max dans Rails 3?

J'ai un modèle, avec des attributs min_age et max_age.

L'âge peut être compris entre 0 et 100, mais je veux également valider les valeurs de croisement, je veux dire que max est supérieur ou égal à min

{:min_age => 0, :max_age => 0} => true
{:min_age => 0, :max_age => 1} => true
{:min_age => 1, :max_age => 0} => false # max < min
{:min_age => 1, :max_age => 101} => false # out of 0..100 range
55
astropanic

Vous pouvez également utiliser inclusion ... dans , comme dans:

validates :height, inclusion: { in: 1..3000, message: 'The height must be between 1 and 3000' }
28
user456584
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

Vous pouvez également utiliser l'âge, comme ceci:

validates_numericality_of :age, less_than_or_equal_to: 100, greater_than: 0
10
EastsideDeveloper