2016-06-27 4 views
0

私はKaminari gemを使用してAPIにページを設定しています。 、APIでKaminariでper(n)メソッドを渡す値を取得する

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

私はこのようなクライアントのためのいくつかの改ページのリンクを入れている:私はこのような私のコレクションを作成してい

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は、1ページあたりのレコード数に対して正しい結果を返しません。たとえば、17個のレコードがあり、ページサイズが5で、ページ4に行くと、ページングURLのカウントパラメータは2になります。ここでは、5になります。

私は、かみなしコレクションのために.per(n)で渡された値を取得する簡単な方法があるのでしょうか?これの代わりにこれを使用するといいです:

params[:count] || MyModel.default_per_page 

答えて

0

ちょうどこれを考え出しました。私が探していた方法は、limit_value

MyModel.all.page(4).per(5).limit_value #=> 5 
関連する問題