2

アプリからメールを送信しようとしています。オブザーバーを使用していないときにメールが送信されます。オブザーバーを使用すると、次のエラーが発生します。

undefined local variable or method ` UserMailer' for #<UserObserver:0x7f5730c07400>

これが私のUserMailerです

class UserMailer < ActionMailer::Base
  default :from => "from@me.com"    
  def welcome_email(user)
    @user = user
    @url  = "website.com/home"
    mail(:to => user.email, :subject => "Welcome to My Awesome Site")
  end
end

オブザーバー コード

require "#{Rails.root}/app/mailers/user_mailer.rb" 

class UserObserver < ActiveRecord::Observer
    observe :user

  def after_save(user)
     UserMailer.welcome_email(user).deliver
  end

end

どんな助けでも大歓迎です。私はレール上のルビーにnubyです。ティア

4

2 に答える 2

3


Rails 4ではオブザーバーが削除されまし

その主な理由は、オブザーバーがあなたのアプリケーションを新しい開発者にとって読みにくいものにしていることです。

サービスを使用することをお勧めします ( AR モデルを適切にリファクタリングする方法について説明しているこの投稿をご覧ください)、そのうちの 1 つでメールを送信してください。

于 2013-04-08T11:53:22.250 に答える