Devise отменяет настраиваемое представление электронной почты - PullRequest
1 голос
/ 05 мая 2020

Я хочу отправить по электронной почте инструкции по сбросу пароля пользователя с помощью devise gem. Для этого я заменяю passwords_controller

class PasswordsController < Devise::PasswordsController
  respond_to :json

  def create
    account = ::Account.find_by(email: password_reset_params[:email])
    account&.send_reset_password_instructions
    head 200
  end

  private

  def password_reset_params
    params.require(:account).permit(:email)
  end
end

с представлением - app/views/accounts/mailer/reset_password_instructions.html.erb

<p>Hello <%= @resource.email %>!</p>

<p>This is a password reset request, click on the link below:</p>

<p><%= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token) %></p>

Но вместо указанного выше электронного письма я получил стандартное сообщение:

Hello test@test.com!

Someone has requested a link to change your password. You can do this through the link below.

Change my password

If you didn't request this, please ignore this email.

Your password won't change until you access the link above and create a new one.

Что-то еще поменять? в initializers/devise у меня config.mailer = 'Devise::Mailer' изменены маршруты:

devise_for :accounts, singular: 'account', path: '', controllers: {
passwords:     'api/v1/account/passwords',
}

1 Ответ

0 голосов
/ 06 мая 2020

После предложения в комментариях Макса все, что мне нужно было сделать, это переместить файл представления почтовой программы из app/views/accounts/mailer/reset_password_instructions.html.erb в -> app/views/devise/mailer/reset_password_instructions.html.erb

...