1) validates_numericity_of - это одна из многих валидаций, существующих в платформе Rails, или, точнее, ActiveRecord. Так что это не то, что доступно для всех классов Ruby. Вы используете это, передавая рубиновые символы, которые представляют атрибуты для модели. Вы можете передать несколько атрибутов одновременно:
validates_numericality_of :age, :score
Но вы также можете указать валидацию несколько раз, если вам нужны разные настройки для разных атрибутов:
validates_numericality_of :age
validates_numericality_of :score, :allow_nil => true
2) Что обычно делает проверка, так это проверка правильности модели перед сохранением в базу данных при вызове ClientWorkout.save (). validates_numericity_of делает так, как следует из названия, подтверждает, что переданные атрибуты являются числовыми, а не строкой, массивом, логическим значением и т. д.
Если какая-либо из проверок не будет выполнена, то запись не будет сохранена в базе данных. Конечно, это можно обойти, вызвав ClientWorkout.save (false), который скажет ActiveRecord сохранить без проверки записи.