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
但在您的情况下,您应该将这段代码移到您的用户模型中。
我只是尝试使用 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
但在您的情况下,您应该将这段代码移到您的用户模型中。