使用Mailchimp api保存回调值的Rails

时间:2012-03-24 19:56:50

标签: ruby-on-rails api ruby-on-rails-3.1 mailchimp

我正在尝试从Mailchimp保存段ID值。我成功创建了“订阅”和“取消订阅”流程。我现在尝试在每次创建“事件”模型时创建一个列表段(这允许我从我的电子邮件列表中创建一个侧段)。我可以创建列表段并获取返回给我的段ID值但是我在保存该ID时遇到问题。我的事件表中有一个seg_id列和一个MailChimpList模型类,其中所有的方法都调用MailChimp api。

这是我在MailChimpList api中的方法

 def event_segment_list(event)
    event_mailer_id = @api.list_static_segment_add(
    :name => event  )
   Rails.logger.info "Created segment for event #{event_mailer_id}"
 end

记录器返回正确的值

现在我试图在我的Events类中保存该值,

class Event 

after_create :create_email_segment

private
def create_email_segment
  list = MailchimpList.new
  if list.available?
   id = list.event_segment_list(
      self.slug
    )
  end
   self.seg_id = id
  end
end

在seg_id列中保存段ID值的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我最终使用update_attribute解决了这个问题。

class Event < Cause
after_create :create_email_segment

private
def create_email_segment
  list = MailchimpList.new
    if list.available?
      mail_id = list.event_segment_list(
      self.slug)
    end
  self.update_attribute(:seg_id, mail_id)
  end
end