【发布时间】:2014-03-13 23:08:38
【问题描述】:
我正在后台启动一个 sidekiq-job,它通过 after_commit 回调在后台异步更新用户 newsletter_info。因此,如果用户在他的设置中更新他的语言,MailChimp 中的语言也会更新。一切正常,除了电子邮件地址。如果用户更新他的电子邮件地址,它将显示在日志消息中,并且它会在正确的位置,但不会在 mailchimp 中更新。相反,具有新电子邮件地址的新用户会被添加到 mailchimp 列表中......
所以一种选择可能是删除旧的,但我认为该解决方案并不干净。
我的另一个想法是电子邮件地址可能是订阅者 ID,并且可能会出现错误。
非常感谢您的帮助,
问候,哈立德。
def update_newsletter_info(args)
NDC.push "KHALED -- "
Rails.logger.debug "UPDATENEWSLETTERINFO ARGS: #{args}"
XIXI::Workflow.for(TwitterUsersMaintainer, args) do |workflow, user|
Rails.logger.debug "INFOS IN UPDATENEWSLETTERINFO #{user.locale} #{user.email}"
gb = Gibbon::API.new
cfg = XOXO::Mailchimp.config
gb.lists.subscribe(
:id => cfg.list_id,
:email => { :email => user.email },
:merge_vars => {
:mc_language => user.locale,
:groupings => [
{ name: cfg.group_name, groups: [ user.recurring_payment? ? 'basic' : 'free' ] }
]
},
:double_optin => !!cfg.double_optin,
:update_existing => true,
:send_welcome => !!cfg.send_welcome
)
# continue
workflow.continue_with(user)
end
NDC.pop
end
【问题讨论】:
标签: ruby ruby-on-rails-3.2 mailchimp ruby-1.9.3 gibbon