Le rappel de confirmation a lieu après la création, donc à la ligne 1 de votre exemple, avant que vous ne définissiez le paramètre confirmed_at
manuellement.
Selon les commentaires, la chose la plus correcte à faire serait d'utiliser la méthode prévue à cet effet, #skip_confirmation!
. Réglage de confirmed_at
manuellement fonctionnera, mais il contournera l'API fournie, ce qui doit être évité dans la mesure du possible.
Donc, quelque chose comme :
user = User.new(user_attrs)
user.skip_confirmation!
user.save!
Réponse originale :
Si vous passez le confirmed_at
ainsi que votre create
arguments, le courrier ne doit pas être envoyé, car le test pour savoir si un compte est déjà "confirmé" ou non consiste à regarder si cette date est fixée ou non.
User.create(
:email => data['email'],
:password => Devise.friendly_token[0,20],
:confirmed_at => DateTime.now
)
Cela, ou simplement utiliser new
au lieu de create
pour construire votre dossier d'utilisateur.