2014-09-25 19 views
0

我可能会丢失一些明显的东西,但我似乎无法弄清楚如何使用Ruby更新CreateSend客户端列表中的现有订阅者名称。通过Ruby库更新订阅者为CreateSend API

所有列表信息是正确的,这是我有(用户已在列表中存在):

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

根据测试的update()方法应该有4个PARAMS:

@subscriber.update("[email protected]", "Name of Person", [], true) 

调用此方法会导致ArgumentError错误:错误的参数数量(4代表1)。它是 -

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

发生任何错误,并返回@subscriber对象包含所有更新的领域,直到你从API重新加载:

所以,我试图通过传递更新的属性的哈希调用update回到原来的状态。

参考测试代码:

回答

0

我发现这个问题的答案,如果别人遇到了同样的问题。

CreateSend::Subscriber.get返回Hashie class的实例,其中update方法期望包含散列的一个参数。这并不实际更新订户详细信息,而只是本地Hashie实例变量的属性。

CreateSend::Subscriber.new将返回一个Subscriber类的实例,其中update方法需要4个参数。在这个实例中调用更新方法实际上会正确执行更新。