我正在尝试首次设置邮件程序。我跟着RubyGuides Mailer Basics跟着信,或者我想。我一直收到NilClass错误。最初,这是因为我的电子邮件地址没有保存到数据库(如果关闭控制器,则为左侧)。现在我能够在rails控制台中看到我的电子邮件地址,但仍然运行到NilClass或“错误数量的参数0 for 1”错误
这是我的控制器:
def create
@pc = Pc.new(pc_params)
respond_to do |format|
if @pc.save
TestMailer.message(@pc).deliver_later
format.html { redirect_to @pc, notice: 'Pc was successfully created.' }
format.json { render :show, status: :created, location: @pc }
else
format.html { render :new }
format.json { render json: @pc.errors, status: :unprocessable_entity }
end
end
end
我的邮件:
class TestMailer < ApplicationMailer
default from: 'notifications@example.com'
def message(pc)
@pc = pc
@url = 'http://example.com/login'
mail(to: @pc.email, subject: 'Welcome to My Awesome Site')
end
end
我不知道我在这里缺少什么,有什么帮助吗?
答案 0 :(得分:0)
离屏幕很短的一段时间后我的步骤重新开始。似乎我可能无法正确命名我的电子邮件模板。从头开始使用Ruby Guides并使其正常工作。未来失去灵魂的新代码:
控制器:
def create
@pc = Pc.new(pc_params)
respond_to do |format|
if @pc.save
PcsMailer.email(@pc).deliver_later
format.html { redirect_to @pc, notice: 'Pc was successfully created.' }
format.json { render :show, status: :created, location: @pc }
else
format.html { render :new }
format.json { render json: @pc.errors, status: :unprocessable_entity }
end
end
邮件程序:
class PcsMailer < ApplicationMailer
default from: 'notifications@example.com'
def email(pc)
@pc = pc
@url = 'http://example.com/login'
mail(to: @pc.email, subject: 'Welcome to My Awesome Site')
end
end
消息:
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h1>Welcome to example.com </h1>
</body>
</html>
主要直接从Ruby指南中复制,但为简单起见,有些内容已被删除。