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
метод. Кто-нибудь может помочь мне здесь?