簡體   English   中英

如何使用 rails gem 在 shopify API 產品上添加分頁

[英]How can I add pagination on shopify API products with rails gem

我正在使用 rails gem shopify API gem來獲取 shopify 產品。 我正在獲取這樣的產品:

ShopifyAPI::Product.find(:all, params: { page: parmas[:page], 
                                          limit: 10, 
                                          title: params[:search]
                                        })

這個 API 返回按標題搜索的產品,限制為 10。那么我如何在我的視圖中添加分頁或者我可以使用will_paginate gem 嗎? 請幫忙!,謝謝! 提前。

您可以將Kaminari.paginate_array(*args)與數組(Shopify 產品數組)一起用作第一個參數,並將選項用作哈希,您必須將值設置為total_count鍵。

完整示例:

@paginatable_array = Kaminari.paginate_array(@shopify_products, total_count:145).page(1).per(10)

使用1作為.page方法的參數,因為您的數組將只包含 10 個對象(如果限制為 10 和 10 個對象)在視圖中只需使用輔助方法

<%= paginate @paginatable_array %>

我希望它會有所幫助!

我想你的工作遲到了。 但這是如何做到的:

例子

@orders = ShopifyAPI::Order.find(:all, :params => {:status => "any", :limit => 3, :order => "created_at DESC" })
@orders.each do |order|

  id = order.id
  name = order.name
end

while @orders.next_page?
  @orders = @orders.fetch_next_page
  @orders.each do |order|

    id = order.id
    name = order.name
  end
end

因此,您可以根據在每個循環中收到的內容創建可分頁的數組。 第一次調用定義了對 fetch_next_page 的所有后續調用的限制。 在我的情況下,每個頁面包含 3 個元素,最多可以有 250 個。

另一種方法是使用shopify“next_page_info”參數進行導航,因此您只需要獲取第一個查詢並包含所有過濾器,然后只需使用頁面信息(previous_page_info或next_page_info)向后/向前導航。

Example 2
first_batch_products = ShopifyAPI::Product.find(:all, params: { limit: 50 })
  second_batch_products = ShopifyAPI::Product.find(:all, params: { limit: 50, page_info: first_batch_products.next_page_info })

next_page_info = @orders.next_page_info
prev_page_info = @orders.previous_page_info

更多信息在這里: https : //github.com/Shopify/shopify_api#pagination

問候。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM