J'utilise des rails 3.2 et concevez. Je me demande si Devise fournit un champ "Email (Adresse)" de confirmation ", tout comme la confirmation de mot de passe pour que l'utilisateur saisisse un champ de mot de passe, puis tapez un champ de confirmation de mot de passe avant que le site Web envoie un courrier électronique de confirmation ou traite l'inscription d'inscription. . Si non, dois-je ajouter un e-mail_confirmation et valider le modèle d'utilisateur (après les rails G Devise User)? P>
Merci d'avance p>
4 Réponses :
En supposant que vous ayez la gemme installée, lorsque vous exécutez cette fonction:
rails generate devise:install
Cela ne répond pas à sa question. Il recherche un champ de confirmation par courrier électronique dans le formulaire d'inscription qui fonctionne comme le champ: Password_Confirmation.
Cette réponse est incorrecte, j'ai peur; Le module "confirmable" envoie des courriels qui nécessitent que l'utilisateur clique sur un lien pour confirmer le compte avant de pouvoir être utilisé, que le questionneur demande s'il est possible d'ajouter automatiquement un deuxième champ de messagerie qui doit correspondre au premier à la validation à la validation. .
Je n'ai pas trouvé si Devise fait ce que vous demandez (la question se réfère à une seconde: Email_confirmation Champ similaire à: Password_confirmation, "confirmable" semble être uniquement lié à la confirmation liens em>). Je devais faire cela aussi et j'ai compris comment le faire en utilisant une validation d'enregistrement active intégrée (Rails 3.2.8, Devise 2.1.2): comme exemple, dans votre modèle (ne supposant pas d'autres validations ou attr_accessibles): p> qui utilisera la validation de "confirmation" intégrée (confirmation »( le même que pour les mots de passe). Enfin, dans votre (s) point de vue, vous devez ajouter quelque chose comme: p> Il peut y avoir une manière plus propre mais cela a fonctionné pour moi. Cependant, ma seule expérience avec le congé à ce jour a été lorsque je l'a ajouté aux modèles existants, je ne l'ai pas utilisé lorsqu'il génère les modèles pour vous (probablement c'est la même chose). P> P>
Confirmation: true code> à votre validation de votre email et : e-mail_confirmation code> à attr_accesible code>. LI>.
: email_confirmation code> champ. Li>
ol>
J'ai été confronté au même problème.
Voici comment j'ai résolu fort> p> Vous devez utiliser cette aide lorsque vous avez deux champs de texte qui devraient recevoir exactement le même contenu. Par exemple, vous pouvez vouloir confirmer une adresse électronique ou un mot de passe. Cette validation crée un attribut virtuel dont le nom est le nom du champ qui doit être confirmé avec "_confirmation" ajouté. P> dans votre modèle de vue, vous pouvez utiliser quelque chose comme Cette vérification est effectuée uniquement si Il y a aussi une option Le message d'erreur par défaut de cette aide est " ne correspond pas à la confirmation forte>". P> De mon expérimentation, à l'aide de Rails officielsGuide , P> si Vous souhaitez modifier le message de confirmation pour dire, e-mail_confirmation code> n'est pas nil code>. Pour exiger la confirmation, assurez-vous d'ajouter une vérification de présence pour l'attribut de confirmation (nous examinerons la présence code> plus tard dans ce guide): p> : cas_sensible code> que vous pouvez utiliser pour définir si la contrainte de confirmation sera sensible à la casse ou non. Cette option est par défaut à true. P> class Person < ApplicationRecord
validates :email, confirmation: true
validates :email_confirmation, presence: { message: "must be given correctly" }
end
Il y a quelques différences mineures pour les nouvelles versions des rails par rapport à la réponse originale. Je suis juste pensé que j'ajouterais ceci au cas où cela aidera quelqu'un d'autre.
Ajouter un Att_Accessor Code> pour e-mail_confirmation forte> à votre modèle et validez le courrier électronique fort> Champon contre le champ {cas_senitive: false} code> sur la validation, sauf si vous avez configuré le champ e-mail à la case sensible à la casse. P> app / modèles / user.rb user.rb CODE> P> <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= render 'devise/shared/error_messages', resource: resource %>
<div class="field">
<%= f.label :email %>
<%= f.email_field :email, autofocus: true, autocomplete: 'email', required: true %>
</div>
<div class="field">
<%= f.label :email_confirmation %>
<%= f.email_field :email_confirmation, required: true %>
</div>
<!-- other fields -->
<% end %>