繁体   English   中英

Ruby on Rails 和 SendGrid; 动态模板数据未填充

[英]Ruby on Rails and SendGrid; dynamic template data is not populating

我是 Ruby on Rails 和 SendGrid 的新手。

我不明白为什么下面的代码示例不起作用? 它确实使用正确的模板发送了 email,但动态数据未填写。任何输入/见解都值得赞赏。

require 'sendgrid-ruby'
include SendGrid

mail = SendGrid::Mail.new
mail.template_id = 'template id'
mail.from = Email.new(
  email: 'someone@somewhere.com',
  name: 'ABC')

personalization = SendGrid::Personalization.new
personalization.add_to(Email.new(email: 'someone@somewhere.com', name: 'ABC'))
personalization.add_dynamic_template_data(
  'variable' => [
    { 'first_name' => 'John' },
    { 'last_name' => 'Doe' },
    { 'email' => 'john@doe.com' },
    { 'message' => 'The message is as follows' }
  ]
)

mail.add_personalization(personalization)

sgp = SendGrid::API.new(api_key: ENV['sendgrid_api_key'])
response = sgp.client.mail._('send').post(request_body: mail.to_json)

模板代码如下所示。

Hello from {{first_name}} {{last_name}}.
{{message}} 

结果最终没有填充变量值。

Hello from .

Twilio SendGrid 开发布道者在这里。

您添加的动态数据比模板更复杂。 您可以发送 hash,而不是发送哈希数组作为动态数据。试试这个:

personalization.add_dynamic_template_data({
  'first_name' => 'John',
  'last_name' => 'Doe',
  'email' => 'john@doe.com',
  'message' => 'The message is as follows'
})

可以在 SendGrid Ruby 库文档中查看此示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM