2016-03-29 5 views
1

Ich benutze Ruby 1.9.3 und erhalte den folgenden Fehler in der folgenden Zeile beim Versuch, die SendGrid-API zu verwenden.NoMethodError Ruby 1.9.3

ERROR [auf dieser Zeile unter "mailer.mail(mail_defaults)"]:

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

Code:

vorausgesetzt, einige Benutzer

 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) 

dachte ich, es könnte mein mail_defaults Array sein, damit ich schon versucht, diese (siehe unten) und erhielt den gleichen Fehler in der gleichen Zeile.

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

Habe ich einen Fehler in meinem Code oder ist ein Fehler in SendGrids mailer.mail Methode?

+0

Können Sie uns bitte die komplette Rückverfolgung zeigen? Eventuell müssen Sie die Backtrace-Silencer in Ihrer 'config/initializers/backtrace_silencers.rb' entfernen. – BoraMa

Antwort

0

Dieses Problem ist mit mail.mailer. Dies verwendet intern die Methode to_h, die in Ruby 2.1 implementiert wurde. Effektiv benötigt das sendgrid sdk jetzt Ruby 2.1. Ich hatte das gleiche Problem mit Ruby 1.9.3 und löste es mit einem Upgrade auf 2.1.

Dies ist, was ich von Ruby 2.1 auf CentOS Upgrade verwendet 6 (nicht mein GIST): https://gist.github.com/mustafaturan/8290150

Hoffnung, das hilft.