ユーザーが新しいステータスの作成など、Webサイト内でさまざまなアクションを完了したときに、ActionMailerを使用して電子メールをトリガーしようとしています。
Statusesコントローラーのcreateメソッドでメーラーを呼び出そうとすると、NoMethodErrorが発生します。
nil:NilClassの未定義のメソッド'email'
誰かが私が何が悪いのかを理解するのを手伝ってもらえますか?
ステータスコントローラ内からの私のコードは次のとおりです。
def create
@status = current_user.statuses.new(params[:status])
respond_to do |format|
if @status.save
UserMailer.status_confirmation(@user).deliver
format.html { redirect_to @status, notice: 'Status was successfully created.' }
format.json { render json: @status, status: :created, location: @status }
else
format.html { render action: "new" }
format.json { render json: @status.errors, status: :unprocessable_entity }
end
end
end
これが私のUserMailerコードです:
class UserMailer < ActionMailer::Base
default :from => "myemail@gmail.com"
def status_confirmation(user)
mail(:to => user.email, :subject => "Status Posted")
end
end