我的最终目标是在创建工单后发送电子邮件。当我使用手动输入的一个电子邮件地址时,它可以完美运行,但是当我尝试通过数据库提取已注册用户的电子邮件地址时,我收到一条错误消息:未定义的方法“电子邮件”对于零:NilClass
我确信这是一个简单的解决方案,但我一直迷路并绕圈子。这是我所在位置的代码 - 票务控制器:
def create
@ticket = Ticket.new(params[:ticket])
respond_to do |format|
if @ticket.save
TicketMailer.ticketcreated_email(@user).deliver
format.html { redirect_to @ticket, notice: 'Ticket was successfully created.' }
format.json { render json: @ticket, status: :created, location: @ticket }
else
format.html { render action: "new" }
format.json { render json: @ticket.errors, status: :unprocessable_entity }
end
end
end
ticket_mailer.rb
class TicketMailer < ActionMailer::Base
default :from => "myemailaddress@gmail.com"
def ticketcreated_email(user)
mail(:to => user.email, :subject => "Simple Test")
end
end
如果我只是将 ticket_mailer.rb 中的“user.email”替换为我的电子邮件地址,则邮件文件 / 等等。但是,一旦我接触到使用 Devise 构建的用户,我就无法获取他们的数据。