Если в вашей модели есть строка validates :attribute, presence: true
, это относится к атрибуту, хранящемуся в базе данных, а не к пользовательскому методу.
Ваша проверка будет искать запись в таблице вашей модели в базе данныхи убедитесь, что атрибут first_name не равен nil.
РЕДАКТИРОВАТЬ: как указано ниже, mrzasa фактически не извлекает новый экземпляр вашей записи при проверке, но использует атрибуты, находящиеся в настоящий момент в памяти
Если это так, это добавит ошибку проверки в вашу запись, и вы не сможете ее сохранить.
Я бы настоятельно рекомендовал прочитать https://guides.rubyonrails.org/active_record_validations.html#validations-overview, если вы хотите знать, как работают проверки.