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
相关产品推荐
相关产品推荐

