Настройка подтверждения_урла в Devise - PullRequest
4 голосов
/ 21 октября 2010

Как настроить строку по умолчанию, сгенерированную Devise в представлении почтовой программы?

<p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>

Я написал метод в моем контроллере под названием user_confirm. И я также определил маршрут для этого. Могу ли я получить URL для ссылки на этот метод с токеном в качестве параметров?

Ответы [ 5 ]

8 голосов
/ 29 августа 2011

Я использовал эту маршрутизацию:

map.user_confirm 'confirm/:confirmation_token',
    :controller => 'confirmations', :action => 'show'

И этот ERB:

<%= link_to 'Confirm my account',
    user_confirm_url(:confirmation_token => @resource.confirmation_token) %>

И получил эту красивую ссылку:

http://localhost:3000/confirm/RjOnrd5yNREEDwsEfiFa
7 голосов
/ 05 января 2012

Это что-то вроде (в rout.rb):

devise_scope :user do
  match '/confirm/:confirmation_token', :to => "devise/confirmations#show", :as => "user_confirm", :only_path => false
end

и в представлениях вы можете использовать что-то вроде:

<%= link_to 'Confirm my account', user_confirm_url(@resource.confirmation_token) %>

для Rails 3.

2 голосов
/ 16 июня 2014
  • rails 4.0.5
  • devise 3.2.4

до

URL:

http://example.com/users/confirmation?confirmation_token=jevYKv1z9Pr1LsAUB2NX

приложение / просмотров / изобрести / почтовик / confirmation_instructions.html.erb:

<p><%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %></p>

после

конфиг / routes.rb:

devise_scope :user do
    get 'confirm/:confirmation_token', to: 'devise/confirmations#show'
end

приложение / просмотров / изобрести / почтовик / confirmation_instructions.html.erb:

<p><%= link_to 'Confirm my acount', confirm_url(@token) %></p>

URL:

http://example.com/confirm/Kezap1iutgvXyQAhyu64
0 голосов
/ 25 ноября 2016

Настройка URL-адреса устройства не приведет к обновлению столбца «Verified_at» пользовательской таблицы. Вы можете перенаправить пользователя после нажатия на ссылку подтверждения:

STEP 1 переопределить after_confirmation_path_forв контроллере подтверждений:

Создайте новый файл Подтверждения_контроллера.rb в каталоге app / controllers:

class ConfirmationsController < Devise::ConfirmationsController
  private
  def after_confirmation_path_for(resource_name, resource)
  your_new_after_confirmation_path
 end
end

ШАГ 2 В config / rout.rb добавьте эту строкуэтот Devise будет использовать ваш собственный ConfirmationsController.Предполагается, что Devise работает с таблицей пользователей (вы можете редактировать в соответствии со своей таблицей).

devise_for :users, controllers: { confirmations: 'confirmations' }

ШАГ 3 Перезагрузите веб-сервер

0 голосов
/ 21 октября 2010

Понял.Допустим, я определил свой названный маршрут так:

map.user_confirm '/user_confirm',  :controller => 'users', :action => 'confirm'

Все, что мне нужно было сделать, это

<p><%= link_to 'Confirm my account', user_confirm_url(confirmation_token => @resource.confirmation_token) %></p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...