La personnalisation de la confirmation_url en Concevoir
Comment voulez-vous personnaliser cette ligne par défaut générés par la conception et le mailer?
<p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>
J'ai écrit une méthode dans mon contrôleur appelé user_confirm
. Et j'ai également défini un itinéraire pour elle. Puis-je obtenir l'URL du lien pour que la méthode du jeton comme les params?
OriginalL'auteur Shreyas | 2010-10-21
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé ce routage:
Et ce ERB:
Et reçu ce lien sympa:
le lien que je vous fais parvenir est maintenant http , et l'utilisateur obtient son jeton de trop, mais que l'application est hébergée sur un site https , il ne reconnaît pas le jeton 😐
Concevoir 3 mise à Jour: concevoir utilise maintenant une courte jeton qui est ensuite hachée avant de le comparer à la base de données. Votre mailer lien devrait ressembler à ceci à la place:
link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token)
OriginalL'auteur Paul Schreiber
C'est quelque chose comme (dans les itinéraires.rb):
et dans des vues, vous pouvez utiliser quelque chose comme:
pour Rails 3.
Cela semble être une meilleure réponse que l'on a accepté, à moins que je ne suis malentendu. Celui-ci fonctionne avec des Rails 3.2. Remarque:
"devise/confirmations#show
est dit explicitement d'utiliser la valeur par défaut Concevoir des confirmations de contrôleur. Si vous avez personnalisé les confirmations de contrôleur, utilisezconfirmations#show
au lieu de cela, ou vous aurez un comportement inattendu.OriginalL'auteur Rok Jaklič
rails 4.0.5
devise 3.2.4
avant
url:
app/views/concevoir/mailer/confirmation_instructions.html.erb:
après
config/routes.rb:
app/views/concevoir/mailer/confirmation_instructions.html.erb:
url:
OriginalL'auteur user664833
L'a obtenu.
disons que je définissent j'ai nommé la route comme ça.
tout ce que j'avais à faire est de
OriginalL'auteur Shreyas
La personnalisation de la concevoir URL ne seront pas udpate 'confirmed_at' colonne de la table utilisateur, ce que vous pouvez faire est de rediriger l'utilisateur après avoir cliqué sur le lien de confirmation:
ÉTAPE 1
remplacer le after_confirmation_path_for dans votre confirmations_controller:
Créer un nouveau confirmations_controller.rb dans app/controllers répertoire:
ÉTAPE 2 Dans le fichier config/routes.rb, ajoutez cette ligne afin de Concevoir de l'utilisation de vos personnalisée ConfirmationsController. Cela suppose de Concevoir fonctionne sur la table des utilisateurs (vous pouvez modifier pour correspondre à la vôtre).
ÉTAPE 3 Redémarrer le serveur web
OriginalL'auteur mpalencia