加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用simple_format或视图格式化模型after_

发布时间:2020-12-17 01:50:23 所属栏目:百科 来源:网络整理
导读:我使用mandrill-api(来自MailChimp)在单个API调用中向许多人发送电子邮件.它需要一个 HTML参数,我希望从一个视图而不是直接在我的模型中生成,我无法访问simple_format以应用我保存在数据库中的纯文本(self.body). 示例代码: class Request ActiveRecord::Ba
我使用mandrill-api(来自MailChimp)在单个API调用中向许多人发送电子邮件.它需要一个 HTML参数,我希望从一个视图而不是直接在我的模型中生成,我无法访问simple_format以应用我保存在数据库中的纯文本(self.body).

示例代码:

class Request < ActiveRecord::Base

  after_create :attempt_send

  def attempt_send
    require 'mandrill'
    m = Mandrill::API.new
    message = {
     :subject=> "Subject",:html => "#{self.body}"
    }
    sending = m.messages.send(message)
    puts sending
  end

end

这种情况让我头疼.我的应用程序的其余部分使用Rails动作邮件程序,因此在视图层中可以干净地处理电子邮件内容.

如果你能告诉我如何以某种方式使用simple_format这将是一个快速修复,以实现我在self.body上需要的格式.我愿意接受更优雅的解决方案,使这个功能更像Rails邮件程序.我考虑过的一个选项是使用控制器方法返回电子邮件html但我认为这会导致自引用http请求,这不是一种有效的方法.开放的想法!

解决方法

您可以包含模块ActionView :: Helpers :: TextHelper

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format

class Request < ActiveRecord::Base
  include ActionView::Helpers::TextHelper

  after_create :attempt_send

  # ...

    :html => "#{simple_format(self.body})"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读