设置邮件程序时出现 NilClass 错误
NilClass error setting up mailer
我是第一次尝试设置邮件程序。我已经完全按照 RubyGuides Mailer Basics 了,或者我是这么想的。我不断收到 NilClass 错误。最初,这是因为我的电子邮件地址没有保存到数据库(如果离开控制器则保留)。现在我可以在 rails 控制台中看到我的电子邮件地址,但仍然 运行 进入 NilClass 或出现 "wrong number of arguments 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
我不明白我在这里缺少什么,有什么帮助吗?
离开屏幕不久后原路返回。看来我可能没有正确命名我的电子邮件模板。使用 Ruby 指南从头开始并使其正常工作。未来迷失灵魂的新代码:
控制器:
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 指南中复制,但为简单起见删除了一些内容。
我是第一次尝试设置邮件程序。我已经完全按照 RubyGuides Mailer Basics 了,或者我是这么想的。我不断收到 NilClass 错误。最初,这是因为我的电子邮件地址没有保存到数据库(如果离开控制器则保留)。现在我可以在 rails 控制台中看到我的电子邮件地址,但仍然 运行 进入 NilClass 或出现 "wrong number of arguments 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
我不明白我在这里缺少什么,有什么帮助吗?
离开屏幕不久后原路返回。看来我可能没有正确命名我的电子邮件模板。使用 Ruby 指南从头开始并使其正常工作。未来迷失灵魂的新代码:
控制器:
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 指南中复制,但为简单起见删除了一些内容。