Rails 4.1 Mailer Previews и разработка пользовательских, электронных писем

У меня есть новое приложение Rails 4.1.1, где я настраиваю электронные письма Devise. Я хочу, чтобы они отображались в новой функции предварительного просмотра электронной почты Rails, поэтому я сделал следующее:

1) Добавлен следующий фрагмент к моемуconfig/development.rb файл:

config.action_mailer.preview_path = "#{Rails.root}/lib/mailer_previews"

2) Создан мой собственный адрес электронной почты DeviseUserMailer вapp/mailers/user_mailer.rb:

class UserMailer < Devise::Mailer   
  helper :application # gives access to all helpers defined within `application_helper`.
  include Devise::Controllers::UrlHelpers # Optional. eg. `confirmation_url`

  layout "notifications_mailer"
end

3) Измененоconfig/initializers/devise.rb содержать следующий фрагмент:

config.mailer = 'UserMailer'

4) Добавлен классUserMailerPreview вlib/mailer_previews со следующим содержанием:

class UserMailerPreview < ActionMailer::Preview
  def confirmation_instructions
    UserMailer.confirmation_instructions(User.first, {})
  end

  def reset_password_instructions
    UserMailer.reset_password_instructions(User.first, {})
  end

  def unlock_instructions
    UserMailer.unlock_instructions(User.first, {})
  end
end

Все идет нормально. Похоже, я все сделал правильно. Но затем я пытаюсь увидеть предварительный просмотрconfirmation_instructions отправьте письмо по адресу / rails / mailers / user_mailer / translation_instructions, и я получу следующую ошибку:

undefined method `confirmation_url' for #<#<Class:0x007fa02ab808e0>:0x007fa030fb7e80>

код для моегоconfirmation_url.html.erb Шаблон выглядит так:

<%= t("notifications.texts.greeting") + @user.display_name %>,

<p>You can confirm your account email through the link below:</p>

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

Что я делаю неправильно? Я думаю, что-то не так с тем, как я называюconfirmation_url метод. Кто-нибудь может помочь мне здесь?

Ответы на вопрос(4)

Ваш ответ на вопрос