【问题标题】:rails engine mailer missing templaterails engine mailer 缺少模板
【发布时间】:2017-09-28 21:18:55
【问题描述】:

所以我正在开发一个 Rails 引擎并生成了一个邮件程序,将我的观点放入

app/
  views/ 
    my_engine/ 
      user_mailer/
        account_activation.html.erb
        account_activation.text.erb

配置虚拟应用程序以显示我添加的预览

test/dummy/config/environments/development.rb

config.action_mailer.preview_path = MSearcher::Engine.root.join('test/mailers')

test/mailers/previews/my_engine/user_mailer_preview.rb

module MyEngine
    class UserMailerPreview < ActionMailer::Preview
        def account_activation
            User.first
            UserMailer.account_activation(user)
        end
    end
end

现在如果我创建我的邮件

/app/mailers/my_engine/user_mailer

module MyEngine
    class UserMailer < Application Mailer
        def account_activation(user)
            mail to: user.email, subject: "Account Activation"
        end
    end
end

有了这个我可以导航到 localhost:3000/rails/mailers/my_engine/users_mailer/account_activation

我在哪里得到错误

Template is missing
Missing template layouts/mailer with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee]}. 
Searched in: * 
    "/home/me/workspace/rails/my_engine/test/dummy/app/views" * 
    "/home/me/workspace/rails/my_engine/app/views"

所以默认行为是在应有的文件夹上方的文件夹中查找我的模板。如何配置正确的行为?

【问题讨论】:

    标签: ruby-on-rails actionmailer rails-engines


    【解决方案1】:

    我最终做的是告诉它在哪里可以找到布局

    当我生成我的邮件时,它在

    中创建了一个默认布局
    app/
      views/ 
        layouts
          my_engine/
            mailer.html.erb
            mailer.text.erb
        my_engine/ 
          user_mailer/
            account_activation.html.erb
            account_activation.text.erb
    

    但是 app/mailers/my_engine/application_mailer.rb 中的默认模板

    module MyEngine
      class ApplicationMailer < ActionMailer::Base
        default from: 'from@example.com'
        layout 'mailer'
      end
    end
    

    这个布局真的应该是 'my_engine/mailer' 我不知道为什么 Rails 不会自动执行此操作,但这为我解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-24
      • 2018-02-01
      • 1970-01-01
      • 2016-04-26
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多