Bjo*_*erg 5 ruby ruby-on-rails activeresource shopify ruby-on-rails-3.2
我注意到在 Shopify API 文档中,他们提到可以使用“以逗号分隔的订单 ID 列表”作为名为“ids”的参数在一次调用中检索多个订单。
链接到我所指的文档部分:https : //docs.shopify.com/api/order#index
我多年来一直在使用 shopify_api gem,它基于 Rails ActiveResource。我目前将它与 Rails 3.2.13 一起使用,效果很好。
我知道如何检索单个记录:
# params[:id] = "123456789"
order = ShopifyAPI::Order.find(params[:id])
Run Code Online (Sandbox Code Playgroud)
或同时进行多条记录:
orders = ShopifyAPI::Order.find(:all, :params => {:limit => 250, :page => 2})
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法使用多个 ID 使其工作。任何想法我在这里做错了什么?
# params[:ids] = "123456789,987654321,675849301"
orders = ShopifyAPI::Order.find(:all, :params => {:ids => params[:ids]})
Run Code Online (Sandbox Code Playgroud)
哪个发出此 GET 请求: https://xxxxxx.myshopify.com:443/admin/orders.json?ids=123456789,987654321,675849301
却一无所获, orders = []
更新:
我还尝试了以下建议:
# params[:ids] = "123456789,987654321,675849301"
orders = ShopifyAPI::Order.find(params[:ids])
Run Code Online (Sandbox Code Playgroud)
哪个发出此 GET 请求: https://xxxxxx.myshopify.com:443/admin/orders/123456789,987654321,675849301.json
然而,这只返回第一个订单 123456789
和:
# params[:ids] = "123456789,987654321,675849301"
ids_as_array = params[:ordersSel].split(",")
orders = ShopifyAPI::Order.find(:all, :params => {ids: ids_as_array})
Run Code Online (Sandbox Code Playgroud)
哪个发出此 GET 请求:
https://xxxxxx.myshopify.com:443/admin/orders.json?ids[]=123456789&ids[]=987654321&ids[]=675849301
结果是 Bad Request
这对我有用,刚刚在控制台中测试过
myids = "2354899011,1234263747"
ShopifyAPI::Order.where(ids: myids)
Run Code Online (Sandbox Code Playgroud)
这会产生以下请求
https://myfancyshop.myshopify.com/admin/orders.json?ids=2354899011,1234263747
Run Code Online (Sandbox Code Playgroud)
这也ShopifyAPI::Order.find(:all, :params => { :ids => myids })为我提供了相同的结果。
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |