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 対 1) が発生します。

そこで、更新された属性のハッシュを渡して update を呼び出してみます。

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

API からリロードするまで、エラーは発生せず、返された @subscriber オブジェクトには更新されたすべてのフィールドが含まれます。元の状態に戻ります。

テストコードへの参照:

4

1 に答える 1

0

他の誰かが同じ問題を経験した場合、私はこれに対する答えを見つけました。

CreateSend::Subscriber.getのインスタンスを返します。メソッドはHashie classupdateハッシュを含む 1 つのパラメータを想定しています。これは実際には購読者の詳細を更新するのではなく、ローカル Hashie インスタンス変数の属性のみを更新します。

CreateSend::Subscriber.newupdateメソッドが 4 つのパラメータを期待するSubscriber クラスのインスタンスを返します。このインスタンスで更新メソッドを呼び出すと、実際に更新が正しく実行されます。

于 2014-09-29T06:43:57.620 に答える