Rails 4:尝试在创建时将订阅者添加到 Mailchimp 列表

Rails 4: Trying to add subscriber to Mailchimp list on create

我只是尝试使用 after_create 回调将订阅者添加到我在 Mailchimp 上设置的时事通讯邮件列表。

当我尝试转到 "users/edit" 页面时遇到路由错误 "undefined method `after_create' for Users::RegistrationsController:Class"。这是我的:

registrations_controller.rb

after_create :add_newsletter_subscriber

 def create
  # create method
 end

private

 def add_newsletter_subscriber
  mailchimp = Mailchimp::API.new(ENV['MAILCHIMP-API-KEY'])
  mailchimp.lists.subscribe('[newsletter-list-id]', {
    "email" => @user.email        
  },
  merge_vars: {"FIRSTNAME" => @user.first_name,
                    "LASTNAME" => @user.last_name}
            )
end

对于add_newsletter_subscriber方法,我指的是this documentation on mailchimp

您的回调应该发生在您的 ActiveRecord 模型中,而不是在控制器中。 after_create 回调仅在您的模型中可用。

http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

还有可用的控制器回调

after_action, append_after_action, 
append_around_action, append_before_action, around_action 

http://api.rubyonrails.org/classes/AbstractController/Callbacks/ClassMethods.html

但在您的情况下,您应该将这段代码移到您的用户模型中。