尝试通过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
我得到了这个错误:UserMailer:Class的未定义方法`before_action' 在Rails指南中有相同的例子,我无法理解我的代码和指南中的代码之间的区别。
答案 0 :(得分:3)
在Rails 3中没有ActionMaler :: Base的回调
答案 1 :(得分:1)
检查控制器的开头。有这样的错误...
before_action :set_org, only: [:show, :edit, :update, :destroy]
意外地移到了这个......
class OrgsController < ApplicationController
将其移回课堂内。
答案 2 :(得分:0)