1) validates_numericality_of est l'une des nombreuses validations qui existent dans le framework Rails, ou ActiveRecord pour être plus précis. Ce n'est donc pas quelque chose d'accessible pour toutes les classes Ruby. Vous utilisez des symboles ruby qui représentent les attributs du modèle. Vous pouvez passer plusieurs attributs en même temps:
validates_numericality_of :age, :score
Mais vous pouvez également spécifier la validation plusieurs fois si vous voulez différents paramètres pour les différents attributs:
validates_numericality_of :age
validates_numericality_of :score, :allow_nil => true
2) Qu'est-ce que les validations en général font est pour valider si le modèle est "valide" avant d'enregistrer dans la base de données lors de l'appel de ClientWorkout.save(). validates_numericality_of fait comme le nom implique de valider que les attributs passés sont numériques et non une chaîne, un tableau, un booléen etc.
Si l'une des validations n'est pas remplie, l'enregistrement ne sera pas sauvegardé dans la base de données. Ceci peut bien entendu être contourné en appelant ClientWorkout.save (false) qui demandera à ActiveRecord de sauvegarder sans valider l'enregistrement.
Cet article répond à ma première question: http://www.vitarara.org/cms/ruby_metaprogamming_declaratively_adding_methods_to_a_class – mnguyen1nc