mandrill 和嵌套的合并变量

Posted

技术标签:

【中文标题】mandrill 和嵌套的合并变量【英文标题】:mandrill and nested merge vars 【发布时间】:2015-05-01 01:02:12 【问题描述】:

我正在为山魈模板使用把手。并且想知道如何使用嵌套的合并变量?我正在使用 ruby​​ 的 mandrill-api gem。

global_merge_vars: [
  name: 'receiver_name', content: receiver_name,
  name: 'email_message.from_email', content: email_message.from_email,
  name: 'email_message.from_phone', content: email_message.from_phone,
  name: 'email_message.message_body', content: email_message.message_body,
],

在模板中:

<pre style="font-family: Arial, Helvetica, sans-serif; margin: 0">
    email_message.message_body
</pre>

但它不起作用。但是,对于“receiver_name”,它可以工作。

【问题讨论】:

“它不起作用”到底是什么意思? email_message.message_body 解析为空字符串。 【参考方案1】:

email_message.xxx 解析为空字符串,因为 Handlebars 尝试访问 email_message 的属性 xxx,但它不存在,因为它没有嵌套。

目前,您似乎无法在global_merge_vars 中创建嵌套变量(请参阅Mandrill doc)。

但我不确定这里是否需要嵌套变量。所以你应该能够简单地将你的. 替换为_,它会起作用:

global_merge_vars: [
  name: 'receiver_name', content: receiver_name,
  name: 'email_message_from_email', content: email_message.from_email,
  name: 'email_message_from_phone', content: email_message.from_phone,
  name: 'email_message_message_body', content: email_message.message_body,
],

在您的模板中:

<pre style="font-family: Arial, Helvetica, sans-serif; margin: 0">
  email_message_message_body
</pre>

【讨论】:

以上是关于mandrill 和嵌套的合并变量的主要内容,如果未能解决你的问题,请参考以下文章

在 Mandrill 车把合并变量中使用 HTML

抄送收件人的 Mandrill 合并变量不起作用

访问除合并变量之外的对 Mandrill API 的 JSON 请求中的变量

如何在 Mandrill 中为本机 Mailchimp 的合并标签设置值?

通过 Rails 将对象作为变量发送到 Mandrill

Mandrill 模板合并失败