2013-08-18 2 views
1

Я использую a2z gem для работы с API рекламы продукта Amazon, и я столкнулся с этой проблемой с камнем, когда пытаюсь указать несколько product_ids в запрос item_lookup. Я могу это исправить, или мне нужно связаться с автором драгоценного камня?Ruby Gem - Невозможно преобразовать строку в целочисленную ошибку

can't convert String into Integer 

Вот мой код:

def product_lookup 
    # Check which Retailer this is for 
    case params[:retailer] 
     when "amazon" 
      client = A2z::Client.new(key: ENV["AMAZON_PAAPI_KEY"], secret: ENV["AMAZON_PAAPI_SECRET"], tag: ENV["AMAZON_PAAPI_TAG"]) 
      product_ids = [] 
      product_ids << product_one_id = params[:product_one_id] 
      product_ids << product_two_id = "B00D43QGPS" 
      product_ids = product_ids.join(",") 

      @products = client.item_lookup do 
       id product_ids 
       response_group 'Small, Images, OfferListings' 
      end 

      render :json => @products 

    end 
end 
+1

Большая часть о GitHub - это то, что вы * можете * исправить что угодно. :) Вы можете разблокировать, исправить и отправить запрос на перенос, а затем указать свое приложение на свою вилку a2z, пока автор не успеет слить. Какая строка бросает ошибку? – Kyle

+2

Учитывая определение 'id' на https://github.com/mhuggins/a2z/blob/master/lib/a2z/requests/item_lookup.rb, ясно, что он ожидает, что формат, который вы передаете, в смысле значения, разделенные запятыми, поэтому проблема должна быть более глубокой. Обратите также внимание на то, что вы можете пропустить выполнение 'join' самостоятельно, поскольку метод' id' сделает это для вас, если будет передан 'Array'. –

ответ

1

Gem создатель здесь. :) Спасибо за вопрос и за добавление проблемы в Github.

Мне интересно, изменилось ли что-то либо в зависимости от драгоценных камней, либо в структуре ответа Амазонки, если только я просто случайно не сломал его другим изменением, так как на данный момент у камня нет тестов.

Я вижу, в чем проблема: ответ представляет собой массив хэшей (т. Е. Несколько продуктов), и я рассматриваю его как хэш (то есть: один продукт). Мне нужно будет изменить синтаксический анализ ответа на учет для массивов, что не должно быть слишком сложным. Позвольте мне посмотреть, смогу ли я исправить ситуацию.