ユーザーが承認または拒否できる週を提出するアプリケーションがあります。週のコントローラーでは、選択した週に繰り返し実行し、対応するユーザーを見つけて送信するための次の行があります。各ユーザーのメール:UserMailerの未定義のメソッド:クラス
elsif params[:commit] == "Reject selected weeks"
user_week = Week.where(id: params[:weeks_ids])
user_week.update_all(approved?: false)
# fetch the set of user_emails by converting the user_weeks to user_ids
users = User.find(user_week.pluck(:user_id))
users.each do |user|
#iterate over the users and send each one an email
UserMailer.send_rejection(user).deliver
end
flash[:info] = "Selected weeks were Rejected."
end
redirect_to weeks_path
私は週に拒否しようとすると、私は次のエラーメッセージが表示されます。
undefined method `send_rejection' for UserMailer:Class
を、私は、既存のコードに上の追加およびMVCの少しの知識を持っています、私が考えることができる唯一の問題はメーラーメトを置くことであろうdを間違ったファイルに書き込むか、不正なタイプのargをメーラーメソッドに送信する。 私のユーザモデルに含まれているメーラ "send_rejection"があります。
def send_rejection(user)
UserMailer.reject_timesheet(user).deliver_now
end
私user_mailer.rbファイル内の対応方法:
def reject_timesheet(user)
@greeting = "Hi"
mail to: user.email, subject: "Rejected Timesheet"
end
新しい私が間違っているつもりだ場所がわからレールとないようにします。
Userモデルではなくuser_mailer.rbにsend_rejectionメソッドを配置しようとしましたか?私はUserMailerを使うと思います。それをそこに見せます。または、UserMailer.reject_timesheetを実行します。 –
キラー、そうだよ – CodeBoy
大文字のビットがそのファイルを呼び出している。ユーザー。 UserMailerがuserMailerを呼び出しています(これはファイルの最上部にあります)。 –