2016-06-27 6 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은 페이지 당 레코드 수에 대한 올바른 결과를 반환하지 않습니다. 예를 들어 17 개의 레코드가 있고 페이지 크기가 5이고 페이지가 4 인 경우 페이지 번호 URL의 카운트 매개 변수는 이되어야 2이됩니다.

Kaminari 컬렉션에 .per(n) 값을 전달하는 쉬운 방법이 있는지 궁금합니다. 이 대신에 다음을 사용하는 것이 좋습니다.

params[:count] || MyModel.default_per_page 

답변

0

그냥 알아 냈습니다. 내가 찾던 방법은 limit_value

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