Rails:如何将新创建的用户的电子邮件地址添加到MailChimp?

时间:2014-07-29 16:59:28

标签: ruby-on-rails mailchimp

对于上下文,我正在使用Ruby on Rails开发一个Web应用程序,我使用MailChimp来处理电子邮件活动。

如果ActiveRecord模型名为User,其属性名为email,那么在成功创建新用户后,如何将用户的电子邮件发送到MailChimp列表?

3 个答案:

答案 0 :(得分:5)

将官方mailchimp-api gem添加到您的Gemfile:

gem 'mailchimp-api', require: 'mailchimp'

然后运行:

bundle install

在用户模型中使用after_create挂钩将订阅者发送到MailChimp:

class User < ActiveRecord::Base

  after_create :add_mailchimp_subscriber


  def add_mailchimp_subscriber
    client = Mailchimp::API.new('<your mailchimp api key>')
    client.lists.subscribe('<your mailchimp list id>', {email: email}, {'FNAME' => first_name, 'LNAME' => last_name})
  end
end

您需要将订阅者添加到MailChimp的最低要求。您可能希望将add_mailchimp_subscriber逻辑移动到它自己的类或排队作业以异步运行它。您还应该添加一些错误处理。 client.lists.subscribe方法会引发特定于问题的错误。例如,如果您指定的MailChimp列表ID无效,您将获得Mailchimp::ListDoesNotExistError

您可以在此处找到官方宝石和文档:

https://bitbucket.org/mailchimp/mailchimp-api-ruby/

答案 1 :(得分:2)

基本上,您需要的是Callbacks。您可以编写代码以在after_create回调中将新用户订阅到mailchimp。

类似user.rb模型中的内容。

def after_create(user)
  # code to subscribe user to mailchimp
end

您可以查看此blog以获取更多信息和示例。

答案 2 :(得分:0)

您可以使用Mailchimp API管理列表订阅者:http://apidocs.mailchimp.com/api/2.0/lists/subscribe.php

有几种红宝石包装易于在导轨中使用:http://apidocs.mailchimp.com/api/downloads/#ruby-rails

因此,在模型更改上添加一些操作的常用方法是使用Active Records回调。所以你的代码可能看起来像这样

class User < ActiveRecord::Base

  after_create :add_subscriber_to_list

  private

  def add_subscriber_to_list
    # Logic to add subscriber to list via Mailchimp API ruby wrapper
  end
end