2014-09-25 48 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個參數。在這個實例中調用更新方法實際上會正確執行更新。