after_commit コールバックを介してバックグラウンドでユーザーの Newsletter_info 非同期を更新する sidekiq-job をバックグラウンドで開始しています。したがって、ユーザーが設定で言語を更新すると、MailChimp でも言語が更新されます。メールアドレス以外はすべて正常に機能します。ユーザーがメールアドレスを更新すると、ログメッセージに表示され、正しい場所に表示されますが、mailchimp では更新されません。代わりに、新しいメールアドレスを持つ新しいユーザーが mailchimp リストに割り当てられます...
したがって、古いものを削除することも1つの選択肢かもしれませんが、解決策はきれいではないと思います。
私の他の考えは、おそらくメールアドレスはサブスクライバー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