NilClass错误设置邮件程序

时间:2015-03-06 02:30:18

标签: ruby-on-rails actionmailer mailer

我正在尝试首次设置邮件程序。我跟着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

我不知道我在这里缺少什么,有什么帮助吗?

1 个答案:

答案 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指南中复制,但为简单起见,有些内容已被删除。