/访客的Gibbon :: GibbonError您必须在拨打电话前设置api_key

时间:2014-05-05 20:38:29

标签: 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(据称)

我正在阅读railsapps.org上的learning rails书籍我已经完成了mailchimp电子邮件列表代码的实现,当我在表单上按提交时,我收到以下错误:

Gibbon::GibbonError at /visitors
You must set an api_key prior to making a call

我正在通过一个invalid URI error,它在周末神秘地消失了(自上周五以来我没有碰到过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

当我无法为自己调试时,我讨厌成为一个菜鸟...感谢回复。

此致

杰夫

1 个答案:

答案 0 :(得分:1)

Gibbon会自动查找环境变量MAILCHIMP_API_KEY,Gibbon会在您创建实例时使用它。如果您还没有设置Unix env变量MAILCHIMP_API_KEY,则需要明确设置它。要硬编码:

 mailchimp = Gibbon::API.new("your_api_key")

或者从config / secrets.yml文件中获取它:

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