如何使用ShopSense API?
显示Rails中shopsense-ruby的产品? JSON.parse(response)["products"]
正在返回nil:
NoMethodError in Main#index
Showing /home/dev/demo-shopsense/app/views/shared/_shopsense.html.erb where line #3 raised:
undefined method `any?' for nil:NilClass
Extracted source (around line #2):
<div class="custom_widget">
<% if @products.any %>
<% @products.each do |product| %>
<div class="product">
<%= image_tag product['image']['url'] %>
<p><%= product['name'] %></p>
main_controller.rb
:
class MainController < ApplicationController
def index
client = Shopsense::API.new('partner_id' => 'uid0000-0000000-00')
response = client.get_looks("New")
@products = JSON.parse(response)["products"]
end
end
shared/_shopsense.html.erb
:
<div class="custom_widget">
<% if @products.any? %>
<% @products.each do |product| %>
<div class="product">
<%= image_tag product['image']['url'] %>
<p><%= product['name'] %></p>
</div>
<% end %>
<% end %>
</div>
我已经设置了一个简单的演示应用demo-shopsense,应该很容易启动和运行。
答案 0 :(得分:1)
您的请求的已解析响应如下所示:
{"totalCount"=>"536121",
"looks"=>
[{"id"=>"12328367",
"title"=>"black",
...
正如您所看到的,而不是&#39;产品&#39;我们有&#39;看起来。
@products = JSON.parse(response)["looks"]
当您使用外部服务时,找出确切的响应格式非常重要。
编辑: 我认为在这种情况下你实际上需要使用&#39; search&#39;客户端上的方法,而不是“get_looks&#39;”,如果您想获得产品。