【问题标题】:Rails TemplateRenderer render_to_string returning nilRails TemplateRenderer render_to_string 返回 nil
【发布时间】:2015-04-09 13:37:07
【问题描述】:

我的邮件应用程序中有一些代码随机停止工作,我不知道为什么。

在我的邮件中我正在做

body_html =  TemplateRenderer.new.render_to_string(
  :template => "mail_templates/#{template}/template", 
  :locals => params).to_str

template 是一个有效的变量并指向正确的位置。但我得到了

nil:NilClass 的未定义方法 `to_str'

to_str 方法出错,因为render_to_string 方法返回nil。我以前从来没有遇到过这个问题,我不知道为什么它突然不起作用。

【问题讨论】:

  • 你的 Rails 版本是什么。有没有办法在失败时查看参数中的内容。为什么不使用 render "mail_templates/#{template}/template", params 之类的东西?
  • 我刚刚意识到我们最近升级到 Rails 4.1。随着 Rails 的更新,TemplateRenderer 或 render_to_string 肯定发生了一些变化。

标签: ruby-on-rails ruby actionview


【解决方案1】:

似乎有关于这个的讨论,你可以在这里阅读:

https://github.com/rails/rails/issues/14125

建议的修复方法之一是:

In 4.1 you also have to include ActionView::Rendering.

但这似乎已在较新版本上进行了修补:

https://github.com/rails/rails/commit/1cf4bf90251482610ef4ffc253eb542c5778c27b

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2013-04-21
    • 1970-01-01
    相关资源
    最近更新 更多