简单的电子邮件导致堆栈级别太深

spe*_*eer 4 sendmail ruby-on-rails actionmailer ruby-on-rails-3

我有邮件:

class AdminMailer < ActionMailer::Base
  default :from => "pejottest@gmail.com" 
  def message
    mail(:to => "pejottest@gmail.com",:subject => "test")
  end
end
Run Code Online (Sandbox Code Playgroud)

当我从控制器使用它们时:

def create
  AdminMailer.message.deliver
  redirect_to root_path
end
Run Code Online (Sandbox Code Playgroud)

然后我得到了

SystemStackError in EmailsController#create
stack level too deep
Run Code Online (Sandbox Code Playgroud)

没有任何痕迹等等.

Rya*_*igg 12

我想你会发现Action Mailer保留了这个message方法.我建议您调用与此不同的方法以防止此冲突.

感谢Ben Lee在评论中指出了它的来源.

  • https://github.com/rails/rails/blob/master/actionmailer/lib/action_mailer/base.rb#L442 (2认同)