Rails 4.1 强制 ActionMailer 返回其他值

2023-12-22

如何强制在 ActionMailer 方法中返回另一个值。例子:

class TestMailer < ActionMailer::Base

  extend MandrillApi

  def index(email, code)
    @code = code
    result = MandrillApi.send({subject: t('test.index.subject'), to: email, template: render_to_string})
    return result
  end
end

在本例中,我使用 ActionMailer 来渲染模板(render_to_string)并将变量传递给视图,但我需要从 MandrillApi 模块获取结果值。当我调用该方法时TestMailer.index("[email protected] /cdn-cgi/l/email-protection", "asdf123")返回值是#<ActionMailer::Base::NullMail:0x007fe5c433ab10>

Thanks!!


创建单独的类(不是其后代ActionMailer::Base)用于该任务。 ActionMailer 将重写其邮件操作的返回值。

您可以使用随处渲染 https://github.com/yappbox/render_anywhere宝石作为解决方案:

require 'render_anywhere'

class MandrilMailer
  extend MandrillApi
  include RenderAnywhere

  # We need that for 't' i18n helper to work
  include ActionView::Helpers::TranslationHelper

  class RenderingController < RenderAnywhere::RenderingController
    # we can use that for url_helpers to work properly
    def default_url_options
      host = {'production' => 'production.example.org', 'development' => 'development.example.org'}[Rails.env]
      {host: host}
    end
    # alternatively, you can add this line inside you config/environments/*.rb files, setting your own host:
    # Rails.application.routes.default_url_options[:host] = 'example.org'
  end
  def index(email, code)
    # 'render' is a RenderAnywhere call
    MandrilApi.send({subject: t('test.index.subject'), to: email, template: render(template: 'test_mailer/index', locals: {code: code}, layout: false)})
  end
end

MandrilMailer.new.index("[email protected] /cdn-cgi/l/email-protection", "asdf123") # => result of MandrilApi.send
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 4.1 强制 ActionMailer 返回其他值 的相关文章

  • 使用 FactoryGirl 测试简单的 STI

    我有一个类 它是其他一些专门处理该行为的类的基础 class Task lt ActiveRecord Base attr accessible type name command validates presence of type na
  • 在 Rails 4 中使用 AJAX 进行搜索、排序和分页

    我正在尝试进行实时搜索导轨4 0 1应用 我用的是Railscasts 240 教程 http railscasts com episodes 240 search sort paginate with ajax view asciicas
  • 如何防止

    标签在 Rails 中使用tinymce 包裹我的输入?

    默认情况下 tinymce 输入作为段落标签传递到 DOM 我想删除该元素包装器 以便tinymce 准确地传递我在文本编辑器中输入的内容 我怎么做 如果您提供代码 请让我知道该代码的添加位置吗 问候 事实上我解决了我的问题 我所要做的就是
  • Application.css.scss 导致 Rails 4 出现问题

    所以我一直在学习 ruby on Rails 我决定在 myrubyblog 应用程序上的新帖子页面添加一些样式 一切正常 几天后 我决定将 posts scss 文件中的 scss 导入到 application css scss 中 然
  • Ruby 字符串上的扫描和匹配有什么区别

    我是 Ruby 新手 并且一直使用String scan搜索某个数字第一次出现的位置 返回值在嵌套数组中有点奇怪 但我只是去了 0 0 为了我想要的价值观 我确信它有它的用途 只是我还没有使用它 我刚刚发现有一个String match方法
  • 新分配的序列不起作用

    在 PostgreSQL 中 我创建了一个新表并为其分配了一个新序列id柱子 如果我从 PostgreSQL 控制台插入记录 它可以工作 但是当我尝试从 Rails 导入记录时 它会引发异常 无法找到关联的序列 这是表格 d user me
  • 如何用form_for设置动作?

    我在现有控制器上创建了一个新页面 我在控制器上添加了 2 个操作方法 prompt user 和 process feedback 所以我通过以下方式进入该页面 redirect to controller gt users action
  • 将 ERB 与 Handlebars 模板结合使用

    我有一个使用 ajax 创建新标签的模式 它使用 Tags 参数执行 POST 方法 而无需重新充电视图 因此 我希望根据所选的 price type 参数来呈现一个或另一个价格 div 我使用 Handlebars 所以我想这不是 rub
  • Rube.exe:Babun 中没有这样的文件或目录

    我正在尝试在 Babun 中安装 ruby gems 以便我可以安装 sass 和 compass 但不断收到错误 C RailsInstaller Ruby2 1 0 bin ruby exe No such file or direct
  • 使用 Ruby on Rails 的多个应用程序

    单个 Ruby on Rails 安装是否可以拥有多个共享通用模型的应用程序 例如 我想要一个前端应用程序以及后端管理控制台 但两者共享相同的模型 这类似于 Symfony 在 PHP 中的工作方式 提前致谢 拥有管理面板的最简单方法是使用
  • 如何停止 Heroku 服务器?

    我有一个托管在 heroku 上的临时服务器 我只想将其关闭 但不想破坏该应用程序 我该怎么做 我是否有类似 heroku stop 之类的命令 例如 heroku restart 来重新启动 OR 有没有办法让服务器在超过 750 小时免
  • Thor 可执行文件 - 忽略任务名称

    雷神维基页面 制作可执行文件 https github com wycats thor wiki Making An Executable 向您展示如何创建由 thor 支持的 CLI 命令 如下所示 bash mythorcommand
  • Ruby Time.parse 给我超出范围的错误

    我正在使用 Time parse 从字符串创建 Time 对象 因为某些原因 Time parse 05 14 2009 19 00 导致参数超出范围错误 而 Time parse 05 07 2009 19 00 does not 有任何
  • javascript - Twitter bootstrap jquery 插件未编译用于生产

    我正在使用 Twitter Bootstrap 开发 3 1 Rails 应用程序塞胡纳克的宝石 https github com seyhunak twitter bootstrap rails 在生产模式下 我可以通过管道预编译使用基本
  • 将 UTF-8 设置为 Heroku 中的默认字符串编码

    我需要在 Heroku 中将默认的 ruby 字符串编码更改为 UTF 8 由于某种原因它是 US ASCII heroku console Ruby console for myapp heroku com gt gt a encodin
  • 为什么 Ruby 中两个用空格分隔的字符串连接在一起?

    为什么这在 Ruby 中有效 foo bar gt foobar 我不确定为什么要连接字符串而不是给出语法错误 我很好奇这是否是预期的行为 以及解析器是否负责争论 没有运算符的两个字符串被视为单个字符串 或者语言定义本身指定了这种行为 隐式
  • 在社交媒体 Ruby On Rails 上共享链接时的小预览

    我正在开发一个前端位于的网站angularjs和后端ROR Same ROR API用于android app还 现在我这里有一个情况 我需要在社交媒体上分享我的网站帖子 例如facebook twitter and google plus
  • Rails 3.1 中的嵌套表单

    我在嵌套表单方面遇到问题 rails 3 1 在应该渲染 fields for 块时不渲染 fields for 块 例如 在编辑现有记录时 由于我对自己的英语不够自信 我制作了一个小示例应用程序 新行动 def new manga Man
  • Delayed_job不会运行用户定义的方法

    我一直在尝试让 DelayedJob 在后台运行一些用户定义的方法 对于这个测试用例 我在助手中定义了以下方法 def test case u User new u first name JimBob u last name joe u e
  • 相当于 JavaScript 中 Ruby 的each_cons

    许多语言都曾提出过这个问题 但 javascript 却没有 Ruby 有方法Enumerable each cons https devdocs io ruby 2 5 enumerable method i each cons看起来像这

随机推荐