[英]Rails get list of records in batches with custom order
我必須顯示用戶列表和有關他們的信息。 但是由於我的數據庫中有很多用戶,所以 SQL真的很慢。 現在我想分批顯示用戶,比如 100 個,然后在單擊“查看更多”時顯示/加載更多。
我將如何 go 在實踐中這樣做?
[注意:我有一個應該保留的自定義順序,所以 Rails 文檔中的方法並沒有真正幫助我]
您可以使用名為limit和offset的屬性。 有了這個,您可以限制告知要獲取的記錄數,並使用偏移量告知在開始返回記錄之前要跳過的記錄數。
例子:
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.