簡體   English   中英

Rails 以自定義順序批量獲取記錄列表

[英]Rails get list of records in batches with custom order

我必須顯示用戶列表和有關他們的信息。 但是由於我的數據庫中有很多用戶,所以 SQL真的很慢。 現在我想分批顯示用戶,比如 100 個,然后在單擊“查看更多”時顯示/加載更多。

我將如何 go 在實踐中這樣做?

[注意:我有一個應該保留的自定義順序,所以 Rails 文檔中的方法並沒有真正幫助我]

您可以使用名為limitoffset的屬性。 有了這個,您可以限制告知要獲取的記錄數,並使用偏移量告知在開始返回記錄之前要跳過的記錄數

例子:

User.limit(3)  # this returns first three records

它將生成以下 sql 查詢。

"SELECT  `users`.* FROM `users` LIMIT 3"

由於上述查詢中未提及偏移量,因此它將返回前三個記錄。

 User.limit(5).offset(30)
#returns 5 records starting from 31th so you will get the records from 31 to 35

它將生成以下 sql 查詢。

"SELECT  `users`.* FROM `users` LIMIT 5 OFFSET 30"

您正在有效地尋找分頁。 最常用的寶石是kaminari

您為 model(在您的情況下為用戶)提供默認頁面大小,然后調用

User.page(1)

訪問結果的第一頁。 在您的 controller 中,這通常看起來像:

@users = User.order(:name).page params[:page]

暫無
暫無

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

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