Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用MailChimp 3.0和Gibbon 2.x检索成员_id_Ruby On Rails_Mailchimp_Ruby On Rails 4.2_Gibbon - Fatal编程技术网

Ruby on rails 使用MailChimp 3.0和Gibbon 2.x检索成员_id

Ruby on rails 使用MailChimp 3.0和Gibbon 2.x检索成员_id,ruby-on-rails,mailchimp,ruby-on-rails-4.2,gibbon,Ruby On Rails,Mailchimp,Ruby On Rails 4.2,Gibbon,在我的应用程序的用户设置中,用户可以通过选中复选框订阅或取消订阅邮件列表。我在检索用户MailChimp成员id时遇到一些问题 我创建了一个.env文件,其中包含: MAILCHIMP_API_KEY = "my_api_key" MAILCHIMP_LIST_ID = "my_list_id" 我创建了一个名为gibbon.rb的初始值设定项: Gibbon::Request.api_key = ENV["MAILCHIMP_API_KEY"] Gibbon::Request.timeout

在我的应用程序的用户设置中,用户可以通过选中复选框订阅或取消订阅邮件列表。我在检索用户MailChimp成员id时遇到一些问题

我创建了一个.env文件,其中包含:

MAILCHIMP_API_KEY = "my_api_key"
MAILCHIMP_LIST_ID = "my_list_id"
我创建了一个名为gibbon.rb的初始值设定项:

Gibbon::Request.api_key = ENV["MAILCHIMP_API_KEY"]
Gibbon::Request.timeout = 15
我在user.rb中使用此方法

def mailchimp_news
  @mailchimp_list_id = ENV["MAILCHIMP_LIST_ID"]
  @gibbon = Gibbon::Request.new
  if self.news_email == true
    @gibbon.lists(@mailchimp_list_id).members.update(body: {
    email_address: self.email,
    status: "subscribed",
    merge_fields: {FNAME: self.name,
                   LNAME: ""}
    })
  elsif self.news_email == false
    @gibbon.lists(@mailchimp_list_id).members(member_id).update(body: { status: "unsubscribed" })
end
结束

然后用支票打电话

after_save :mailchimp_news
我收到这个错误:
未定义的局部变量或方法'member\u id'
。如何获取成员id?

在API v3的帮助页面中,订户id是用户电子邮件地址小写版本的MD5哈希


因此,您需要使用
摘要::MD5.hexdigest(self.email.downcase)

您的Ruby代码中有一个错误,并且在调用Mailchimp API之前引发了一个错误。您引用的是名为
member\u id
的变量或方法,该变量或方法未定义。第一步是修复这个bug。