ShopifyAPI::InventoryLevel.delete 删除但也会抛出 NoMethodError

问题描述 投票:0回答:1

我正在使用 ShopifyAPI Ruby gem。作为 gem 的一部分,我可以删除特定位置的产品的 InventoryLevel。

这个效果很好:

  ShopifyAPI::InventoryLevel.delete(
    inventory_item_id: "correct_id",
    location_id: "and_another_correct_id"
  )

问题是,删除关卡后 API 会抛出此错误:

NoMethodError (undefined method `empty?' for nil:NilClass)

这种情况每次都会发生,我不知道为什么。

其他人也发生过这种情况吗?有什么想法吗?

ruby-on-rails ruby rubygems shopify shopify-api
1个回答
0
投票

首先,错误消息告诉您,当您触发该方法时,有东西正在调用

nil.empty?
,因此只需找出哪里发生了这种情况即可。

您使用的 gem 版本是什么? ShopifyAPI::InventoryLevel#delete 只是发送一个 API 请求,因此类似的错误将出现在 gem 处理该请求响应的逻辑中的某个位置。浏览一下存储库,它调用的请求方法可能是

ShopifyAPI::Clients::HttpClient#request
#delete
方法正在向其 API 发送 DELETE 请求,该请求应返回 204 No Content 响应。 HTTP 客户端文件显示它们正在调用
.empty?
并且对 nil 响应正文进行了处理,但是如果您查看文件的版本历史记录,您可以看到这是在不到一年前标记为 v13 的提交中添加的。 4.0。您可能使用的 gem 版本早于该错误修复,只需更新它即可。

© www.soinside.com 2019 - 2024. All rights reserved.