Подтверждение обратного вызова происходит после создания, поэтому оно происходит в строке 1 вашего примера, прежде чем вы установите confirmed_at
вручную.
Согласно комментариям, наиболее правильным было бы использоватьметод, предусмотренный для этой цели, #skip_confirmation!
.Установка confirmed_at
вручную будет работать, но она обходит предоставленный API, чего следует избегать, когда это возможно.
Итак, что-то вроде:
user = User.new(user_attrs)
user.skip_confirmation!
user.save!
Оригинальный ответ:
Если вы передадите confirmed_at
вместе с вашими create
аргументами, письмо отправлять не следует, так как проверка того, является ли учетная запись уже "подтвержденной", заключается в проверке того, действительно ли учетная запись подтверждена.эта дата установлена.
User.create(
:email => data['email'],
:password => Devise.friendly_token[0,20],
:confirmed_at => DateTime.now
)
Это, или просто используйте new
вместо create
для создания своей пользовательской записи.