0

我有一个单独的类,它根据先决条件数据组织创建帐户的所有方面(即,如果用户已经存在,而不是创建用户,而是将此数据添加到该用户帐户)。然后这两种情况都会向用户发送一封电子邮件,通知他们为他们的帐户(新用户)提供所需的信息,或者只是通知他们 X 数据已添加到他们的帐户中。这些交易电子邮件使用 Postage App 进行管理。

在本地开发时,系统的每个方面都按预期工作,并且在每种情况下都会发送适当的电子邮件,但是在演示服务器(位于 Heroku 上)上发生了一个奇怪的问题,即抛出 RoutingError,消息为“没有路由匹配 {}”(没有列出控制器或操作)。

在 Heroku 中启动 rails 控制台后,我尝试检查这条路线并没有抛出任何错误。

以下是此过程中 Heroku 服务器日志的片段:

2012-08-04T01:07:09+00:00 app[web.1]:   app/views/user_mailer/new_user_email.html.haml:7:in `_app_views_user_mailer_new_user_email_html_haml___1192864641417349048_59959220'
2012-08-04T01:07:09+00:00 app[web.1]:   app/lib/user_generator.rb:70:in `send_user_email'
2012-08-04T01:07:09+00:00 app[web.1]: ActionController::RoutingError (No route matches {}):
2012-08-04T01:07:09+00:00 app[web.1]:   app/mailers/user_mailer.rb:13:in `new_user_email'
2012-08-04T01:07:09+00:00 app[web.1]:   app/controllers/details_controller.rb:62:in `finalise'
2012-08-04T01:07:09+00:00 app[web.1]:   app/lib/user_generator.rb:36:in `generate_user_details'

发生这种情况后,PostageApp 然后将替代电子邮件发送到用户电子邮件地址。

控制它的代码是:

 def send_user_email(is_new)
    if is_new
      UserMailer.new_user_email(@user).deliver
    else
      UserMailer.confirm_details_email(@user, @details).deliver
    end 
  end

我的主要问题是什么会导致 Heroku 产生这种 RoutingError (在本地运行代码时不会发生) - 在这之后,PostageApp 有什么理由会发送一个单独的模板而不是预期的模板?


编辑:发送替代电子邮件的原因是产生的 500 错误导致回调重试,导致详细信息被重新添加给用户并发送第二封电子邮件。

我现在的问题是,当调用的辅助方法在控制台中的服务器上工作时(正如它在电子邮件中显示的那样),什么可能导致发生路由错误?

4

0 回答 0