我试图在Rails之外使用ActionMailer发送电子邮件,但遇到了Missing template错误。我有一个这样的文件夹结构。
mailer/app/mailers/welcome_email.rb
mailer/app/views/welcome_email/welcome.html.erb
mailer/mailer.rb我有一个配置文件,其中有下面这一行:
邮件程序/初始化程序/config.rb
ActionMailer::Base.view_paths = File.expand_path('../../app/views/', __FILE__)(老实说,我不明白为什么需要添加这个额外的'../',因为路径是‘上一个文件夹’,然后是'/app/views‘。如果我不这样做,它会找到'/initializers/app/views/')。
File.expand_path('../../app/views/', __FILE__)返回看起来不错的"/home/jedrek/workspace/rubysamples/mailer/app/views"。然后,ActionMailer应该会在那里找到welcome_email/welcome.html.erb模板,但是当我运行mailer.rb时,我得到一个错误
Missing template welcome_email/welcome
Searched in: (ActionView::MissingTemplate)
* "/home/jedrek/workspace/rubysamples/mailer/app/views"为什么它找不到/app/views/welcome_email/welcome.html.erb中的文件?我做错了什么?
发布于 2018-10-20 03:19:51
将views文件夹中的welcome_email目录重命名为welcome_email_mailer,这样就可以了
https://stackoverflow.com/questions/52897309
复制相似问题