Imaginer - créer un compte utilisateur avec a confirmé sans l'envoi d'un e-mail?
J'ai intégré concevoir avec facebook. Maintenant, quand je créer un compte d'utilisateur lorsque l'utilisateur s'est connecté avec son/son facebook compte,
user = User.create(:email => data["email"],
:password => Devise.friendly_token[0,20])
user.confirmed_at = DateTime.now
user.save!
même si le compte a été confirmé, un courriel de confirmation est encore tiré. Une idée de comment je peux activer l'e-mail de tirer?
- Prendre
:confirmation
de la liste des modules passé à concevoir sur la classe d'utilisateur? Puisque vous n'êtes pas réellement l'utiliser. - bien, mais d'autres utilisateurs qui s'inscrivent sur mon site NE doivent être e-mail confirmé
- Je pense que @disappeardng demande pour un cas d'exception.
Vous devez vous connecter pour publier un commentaire.
Confirmer le rappel qui se passe après la créer, de sorte qu'il se passe sur la ligne 1 de votre exemple, avant de vous mettre en
confirmed_at
manuellement.Que par les commentaires, le plus juste chose à faire serait d'utiliser la méthode prévue à cet effet,
#skip_confirmation!
. Réglageconfirmed_at
manuellement travail, mais il contourne la condition de l'API, qui est quelque chose qui doit être évitée lorsque cela est possible.Donc, quelque chose comme:
Réponse originale à cette question:
Si vous passez par la
confirmed_at
avec votrecreate
arguments, le mail ne doit pas être envoyé, comme le test de l'existence ou non d'un compte est déjà "confirmé" est de chercher à savoir si ou non de cette date est fixée.Que, ou simplement l'utiliser
new
au lieu decreate
pour construire votre enregistrement d'utilisateur.confirmed_at
avant de l'enregistrer. Simplement à l'aide denew
surcreate
ne change rien, mais si il avait utilisénew
puis définissezconfirmed_at
avant de l'enregistrer, le message n'aurait pas été envoyée. En fait, tous lesskip_confirmation!
n'est définieconfirmed_at
.skip_confirmation!
pour gérer le travail réel est préférable.DateTime.now
au lieu deTime.now
? J'ai vérifié mes Concevoir définition de Mongoid et il utiliseTime
.Time.now
est certainement très bien dans ce cas. HistoriquementDateTime
était plus appropriée pour le travail avec les dates. Je ne pense pas que même des questions de plus en 1.9.2+Time.now.utc
. Il a étéTime.now
au moment de ce bug. Encore une autre raison d'utiliser seulement la conditionskip_confirmation!
méthode. Je vais mettre à jour la réponse.Si vous voulez juste vous prévenir de l'envoi de l'e-mail, vous pouvez utiliser
#skip_confirmation_notification
, comme suit:Voir la documentation