2017-04-03 6 views
0

マネージャであるユーザーをループしてすべての電子メールを送信しようとしていますが、次のエラーが表示されます。undefined method "email" for nil:NilClassメールを送信するユーザーのループ

def send_manager_email(current_user) 
    managers = User.where(manager: true) 
    managers.each do |manager| 
    UserMailer.timesheet_notification(@manager, current_user).deliver_now 
    end 
end 

と、これは私のメーラーである:これは私が問題の原因であると思われ、ループてる方法です

def timesheet_notification(user, current_user) 
    @greeting = "Hi" 
    @current_user = current_user 
    mail to: user.email, subject: "New Timesheet" 
end 

はどこで間違ったんですか?

答えて

1

これを試してください。 @managerは必要ありません。パラメーターを渡すときはmanagerしか使用できません。

def send_manager_email(current_user) 
     managers = User.where(manager: true) 
     managers.each do |manager| 
     UserMailer.timesheet_notification(manager, current_user).deliver_now 
     end 
    end 

と、これは私のメーラーである:

def timesheet_notification(user, current_user) 
    @greeting = "Hi" 
    @current_user = current_user 
    mail to: user.email, subject: "New Timesheet" 
end 

が、これはあなたのために働くことを願っています。ありがとう!

+0

まあ、それは私の愚かだった...ありがとう!早く受け入れます。 – CodeBoy

+0

いいえ、問題ありません!私の答えを受け入れてください。それがあなたのために働いている場合。 –

関連する問題