0

我可能遗漏了一些明显的东西,但我似乎无法弄清楚如何使用 Ruby 更新 CreateSend 客户端列表中的现有订阅者名称。

所有列表详细信息都是正确的,这是我所拥有的(订阅者已存在于列表中):

@subscriber = CreateSend::Subscriber.get(
    {:api_key => ENV['CM_API_KEY']}, ENV['CM_LIST_ID'], "me@me.com"
)

根据测试,update() 方法应该有 4 个参数:

@subscriber.update("me@me.com", "Name of Person", [], true)

调用它会导致 ArgumentError 错误:错误数量的参数 (4 for 1)

所以,我尝试通过传入更新属性的哈希来调用更新:

@subscriber.update({"Name" => "New Name"})

不会发生错误,返回的 @subscriber 对象包含所有更新的字段,直到您从 API 重新加载它 - 它恢复到原始状态。

参考测试代码:

4

1 回答 1

0

如果其他人遇到同样的问题,我已经找到了答案。

CreateSend::Subscriber.get返回 的实例Hashie class,其中update方法需要一个包含哈希的参数。这实际上不会更新订阅者详细信息,而只会更新本地 Hashie 实例变量的属性。

CreateSend::Subscriber.new将返回订阅者类的一个实例,该update方法需要 4 个参数。在这种情况下调用更新方法实际上会正确执行更新。

于 2014-09-29T06:43:57.620 回答