对于上下文,我正在使用Ruby on Rails开发一个Web应用程序,我使用MailChimp来处理电子邮件活动。
如果ActiveRecord模型名为User,其属性名为email,那么在成功创建新用户后,如何将用户的电子邮件发送到MailChimp列表?
答案 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
。
您可以在此处找到官方宝石和文档:
答案 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