2016-03-29 2 views
1

Я использую Ruby 1.9.3 и получаю следующую ошибку в следующей строке при попытке использовать API SendGrid.NoMethodError Ruby 1.9.3

ERROR [на этой строке ниже "mailer.mail(mail_defaults)"]:

NoMethodError (undefined method `to_h' for #<Hash:0x00000005da0958>): 

КОД:

предполагающей некоторые пользователи

 recipients = [] 

     recipient = SendGrid::Recipient.new('[email protected]') 
     recipient.add_substitution('name', 'Billy Bob') 
     recipient.add_substitution('number', 1234) 
     recipient.add_substitution('time', '10:30pm') 

     recipients << recipient 



     # then initialize a template 
     template = SendGrid::Template.new('blahblah7bef2-d25b00') 

     # create the client 
     # see client above 

     # set some defaults 
     mail_defaults = { 
     :from => '[email protected]', 
     :html => '<h1>I like email tests</h1>', 
     :text => 'I like email tests', 
     :subject =>'Test Email is great', 
     } 

     mailer = SendGrid::TemplateMailer.new(client, template, recipients) 

     # then mail the whole thing at once 
     mailer.mail(mail_defaults) 

Я думал, что это может быть мой mail_defaults массив, поэтому я попытался это (см. ниже) и получил ту же ошибку в той же строке.

mail_defaults = { 
     from: '[email protected]', 
     html: '<h1>I like email tests</h1>', 
     text: 'I like email tests', 
     subject: 'Test Email is great', 
     } 

Есть ли у меня ошибка в коде или у вас есть ошибка в методе SendGrids mailer.mail?

+0

Не могли бы вы показать нам полный след назад? Возможно, вам придется удалить глушители backtrace в 'config/initializers/backtrace_silencers.rb'. – BoraMa

ответ

0

Эта проблема с mail.mailer. Это использует метод to_h внутри, который был реализован в Ruby 2.1. Эффективно, sdk sendgrid требует ruby ​​2.1 сейчас. У меня была такая же проблема с Ruby 1.9.3, и я решил ее обновить до 2.1.

Это то, что я использовал, чтобы обновить Руби 2.1 на CentOS 6 (не мой GIST): https://gist.github.com/mustafaturan/8290150

Надеется, что это помогает.

Смежные вопросы