2016-06-27 20 views
0

我正在使用Kaminari gem對API進行分頁。我創建我的收藏是這樣的:使用Kaminari獲取每個(n)方法傳遞的值

def index 
    @my_models = MyModel.ordered_by_date 
         .page(params[:page]) 
         .per(params[:count]) 
end 

在API中,我把一些分頁鏈接的客戶是這樣的:

json.current_page my_models_url(
    page: @my_models.current_page, 
    count: @my_models.size 
) 
if [email protected]_models.last_page? 
    json.next_page my_models_url(
    page: @my_models.next_page, 
    count: @my_models.size 
) 
end 
if [email protected]_models.first_page? 
    json.prev_page my_models_url(
    page: @my_models.prev_page, 
    count: @my_models.size 
) 
end 

這裏的問題是,在最後一頁, @my_models.size不會爲每個頁面的記錄數返回正確的結果。例如,如果我有17記錄,並且頁面大小爲5,並且我轉到頁面4,則分頁URL中的計數參數將爲2,它應該是5

我想知道是否有一個簡單的方法來獲得價值通過.per(n) Kaminari系列?這將是很好的使用,而不是這個:

params[:count] || MyModel.default_per_page 

回答

0

只是想出了這一個。我找的方法是limit_value

MyModel.all.page(4).per(5).limit_value #=> 5