你好,
梅勒錯誤缺少模板
我有問題,的ActionMailer,當我嘗試執行操作:
rake send_email
我得到一個錯誤:
rake aborted!
ActionView::MissingTemplate: Missing template user_mailer/mailer with "mailer". Searched in:
* "user_mailer"
這是我的:
個寄件人/ 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/tasks/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
我搜索計算器上的解決方案,我嘗試了許多問題的答案對於類似的問題,但不幸的是他們沒有爲我工作。
我找到了解決辦法,當我補充身體到郵件的方法,如:
def mailer(user)
@user = user
mail(to: @user.email, subject: 'Test', body: 'something')
end
然後,它的工作,但我想有單獨的文件體,使其與用戶名和其他事情更復雜。
如果有人有一個想法如何解決這個問題,那麼我會非常感激:)
我發現了同樣的問題,並且您的修復工作正常(儘管我現在仍然偶爾會出現故障。)有趣的是,這隻發生在我的生產環境中。開發工作得很好。我仍在試圖弄清楚發生了什麼事。 –
我也有同樣的問題!剛剛開始賞金:-) – THpubs
你用什麼來運行這個?嘗試像這樣運行命令'RAILS_ENV = production rake send_email' – THpubs