По сути, ActiveRecord :: Callback create (...) - Создает объект (или несколько объектов) и сохраняет его в базе данных, если проверки пройдены. Полученный объект возвращается независимо от того, был ли объект успешно сохранен в базе данных или нет.
Вместо этого вам нужно использовать (это происходит из логики вашего скрипта):
@contact = Contact.new(params[:contact])
Если вы хотите сохранить функцию обратного вызова, используйте функцию обратного вызова after_save.