You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby on Rails 结合 SendGrid 动态模板数据无法填充问题求助

问题排查与修复方案

嘿,我一眼就瞅出问题在哪啦!你的动态模板数据格式完全错了,这就是变量没法填充的核心原因。

错误原因分析

你现在把动态数据塞进了一个名为variable的数组里,还拆成了好几个独立的哈希:

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

但SendGrid的动态模板是直接读取顶层的键值对,模板里写的{{first_name}}是在找顶层的first_name变量,而不是variable数组里某个元素的first_name,自然就找不到对应值了。

修复后的代码

把动态数据改成直接传递包含所有变量的单一哈希就行:

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

这样修改后,模板里的{{first_name}}、{{last_name}}就能正确读取到对应的值,邮件内容就会显示成Hello from John Doe. The message is as follows啦。

另外再确认下你的SendGrid模板ID是正确的,API密钥也有权限发送模板邮件,这俩要是没问题的话,修改完数据格式就应该正常工作了!

内容的提问来源于stack exchange,提问作者Oscar H. Preis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 18:42:29