2

尝试通过 before_action 过滤器将文件附加到邮件:

class UserMailer < ActionMailer::Base
  before_action :add_logo_attachment

  layout 'mail'
  default from: "\"Admin\" <admin@site.com>",
      to: Proc.new {Admin.pluck(:email)}

  def send_mail
    mail(subject: 'Hello, admin!')
  end
  .
  .
  private

  def add_logo_attachment
    attachments.inline['logo.png'] = File.read(Rails.root.join('app/assets/images/logo.png'))
  end

end

我得到这个错误:未定义的方法 `before_action' for UserMailer:Class Rails 指南中有相同的示例,我不明白我的代码和指南中的代码有什么区别。

4

3 回答 3

3

Rails 3 中的 ActionMaler::Base 没有回调

于 2013-07-04T13:33:37.113 回答
1

检查控制器的开头。有一个类似的错误,这...

  before_action :set_org, only: [:show, :edit, :update, :destroy]

不小心被移到了上面……

class OrgsController < ApplicationController

将其移回课堂内。

于 2014-06-18T02:12:55.080 回答
0

尝试

include AbstractController::Callbacks

在您的邮件类中并使用before_filter

看到这个话题

于 2021-02-25T16:34:41.190 回答