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

そして、次のエラーが表示されます: UserMailer:Class の undefined method `before_action' が 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 に答える