我正在尝试学习如何使用rails邮件程序。
我做了一个邮件文件夹,里面有一个叫user_mailer.rb的文件夹。它有:
class UserMailer < ActionMailer::Base
layout 'transactional_mailer'
def user_invite
mail(
:subject => "You've been invited to join a research project team",
:to => 'test@tester.com',
:from => 'test@tester.com'
)
end
end在我的transactional_mailer.html.erb布局中,我有:
<!DOCTYPE html>
<%= yield %>
<style>
body {
margin:0;
padding:0
}
</style>然后,在我的视图/Users/user_invite.html.erb中
嗨,
当我保存所有这些内容并在我的控制台中尝试时,可以这样写:
UserMailer.user_invite.deliver_now我得到了一个错误,它说:
UserMailer#user_invite: processed outbound mail in 65.4ms
ActionView::MissingTemplate: Missing template user_mailer/user_invite with "mailer". Searched in:
* "user_mailer"我不知道这个错误消息是什么意思,也不知道如何解决这个问题。有没有人看到我做错了什么?
我还尝试在我的视图目录下创建了一个名为'user_mailer‘的文件夹。在该文件夹中,我尝试添加一个名为user_invite.html.erb的文件--但也不起作用。
发布于 2016-08-05 09:09:27
问题出现了:
您必须将视图user_invite.html.erb放在views/user_mailer/user_invite.html.erb中,而不是views/users/user_invite.html.erb中
如果您手动创建了邮件程序,请将其删除,然后从控制台尝试
$ rails g mailer user user_invite然后在user_mailer文件夹中自动有一个名为user_invite的新定义和视图。
我希望它现在可以工作了
发布于 2016-08-05 16:03:04
尝试从您的应用程序邮件程序中定义布局。
class ApplicationMailer < ActionMailer::Base
default from: 'Example <noreply@example.com>'
layout 'transactional_mailer' #app/views/layouts/transactional_mailer.html.erb
endhttps://stackoverflow.com/questions/38779561
复制相似问题