Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Gibbon::GibbonError at/visitors在进行调用之前,必须设置api_密钥_Ruby On Rails_Railsapps - Fatal编程技术网

Ruby on rails Gibbon::GibbonError at/visitors在进行调用之前,必须设置api_密钥

Ruby on rails Gibbon::GibbonError at/visitors在进行调用之前,必须设置api_密钥,ruby-on-rails,railsapps,Ruby On Rails,Railsapps,运行OSX Mavericks、ruby 2.1.1p76(2014-02-24修订版45161)[x86_64-darwin13.0]、rvm 1.25.23(master)和rails-4.1.0(据称) 我正在阅读《我已经完成mailchimp电子邮件列表代码的实现》一书,当我在表单上按submit时,我发现以下错误: Gibbon::GibbonError at /visitors You must set an api_key prior to making a call 我当时正在

运行OSX Mavericks、ruby 2.1.1p76(2014-02-24修订版45161)[x86_64-darwin13.0]、rvm 1.25.23(master)和rails-4.1.0(据称)

我正在阅读《我已经完成mailchimp电子邮件列表代码的实现》一书,当我在表单上按submit时,我发现以下错误:

Gibbon::GibbonError at /visitors
You must set an api_key prior to making a call
我当时正在通过一个笔记本电脑工作,它在周末神秘地消失了(从上周五起我就没碰过Mac电脑)。现在我有了这个新的错误

我的API密钥和列表ID有效且设置正确。如果我回顾日志,我会看到另一个错误,
mailchimp.lists.subscribe
方法缺失

以下是本书中实现的代码:

class Visitor < ActiveRecord::Base
  has_no_table
  column :email, :string
  validates_presence_of :email
  validates_format_of :email, :with => /\A[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}\z/i

  def subscribe
  mailchimp = Gibbon::API.new
  result = mailchimp.lists.subscribe({
    :id => Rails.application.secrets.mailchimp_list_id,
    :email => {:email => self.email},
    :double_optin => false,
    :update_existing => true,
    :send_welcome => true
  })
  Rails.logger.info("Subscribed #{self.email} to MailChimp") if result
end

end
类访问者/\A[-A-z0-9\+\.]+\@([-A-z0-9]+\.)+[A-z0-9]{2,4}\z/i
def订阅
mailchimp=Gibbon::API.new
结果=mailchimp.lists.subscribe({
:id=>Rails.application.secrets.mailchimp\u list\u id,
:email=>{:email=>self.email},
:double_optin=>false,
:update_existing=>true,
:send_welcome=>true
})
如果结果为,则为Rails.logger.info(“订阅#{self.email}到MailChimp”)
结束
结束
当我不能自己调试时,我讨厌成为一个傻瓜。。。欢迎答复

问候,


Jeff

Gibbon会自动查找环境变量MAILCHIMP\u API\u KEY,Gibbon会在创建实例时使用它。如果尚未设置Unix环境变量MAILCHIMP_API_密钥,则需要显式设置它。要硬编码,请执行以下操作:

 mailchimp = Gibbon::API.new("your_api_key")
或者从config/secrets.yml文件中获取:

 mailchimp = Gibbon::API.new(Rails.application.secrets.mailchimp_api_key)

谢谢Daniel,我想因为我的环境变量似乎被破坏了,我不得不硬编码API键
mailchimp=Gibbon::API.new(Rails.application.secrets.mailchimp\u API\u key)
帮了我的忙。我已经更新了本书的下一个版本,明确设置了mailchimp\u API\u key。谢谢你提醒我这件事。