Здравствуйте,
У меня проблема с ActionMailer, когда я пытаюсь выполнить действие:
rake send_email
Я получаю сообщение об ошибке:
rake aborted!
ActionView::MissingTemplate: Missing template user_mailer/mailer with "mailer". Searched in:
* "user_mailer"
Здесь my:
мейлеры /user _mailer.rb
class UserMailer < ActionMailer::Base
default from: "[email protected]"
def mailer(user)
@user = user
mail(to: @user.email, subject: 'Test')
end
end
вид /user _mailer/mailer.html.erb
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<p>
Sample mail.
</p>
</body>
</html>
вид /user _mailer/mailer.text.erb
Sample mail.
Lib/задачи/emails_task.rake
desc 'send email'
task send_email: :environment do
UserMailer.mailer(User.last).deliver!
end
<сильные > конфигурации/среда/development.rb
# I recommend using this line to show error
config.action_mailer.raise_delivery_errors = true
# ActionMailer Config
config.action_mailer.delivery_method = :letter_opener
# config.action_mailer.default_url_options = { :host => 'localhost:3000' }
# config.action_mailer.delivery_method = :smtp
# SMTP settings for gmail
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => ENV['gmail_username'],
:password => ENV['gmail_password'],
:authentication => "plain",
:enable_starttls_auto => true
}
# Send email in development mode?
config.action_mailer.perform_deliveries = true
Я искал решение в stackoverflow, и я попробовал много ответов для подобной проблемы, но, к сожалению, никто из них не работал у меня.
Я нашел решение, когда добавляю метод body to mailer, например:
def mailer(user)
@user = user
mail(to: @user.email, subject: 'Test', body: 'something')
end
Затем он работает, но я хотел бы иметь тело в отдельных файлах и сделать его более сложным с именем пользователя и другими вещами.
Если у кого-то есть идея, как решить эту проблему, я был бы очень благодарен:)