2017-02-26 6 views
1

난 내 레일 애플 리케이션에서 jsonapi-resources gem을 사용합니다. 내 리소스 중 하나가 pagination입니다. 페이지 번호를 사용하지 않고 사용자가 의 모든 결과를 (으)로 되돌려 보낼 수있는 경우가 있습니다.jsonapi-resources 조건부로 쪽수 사용 안 함

사용자 지정 필터를 사용하여 사용자 지정 구현을 시도했지만 실패했습니다.

나는 매기기에 "이상한"값을 전달했지만, 그 (페이징 매기기에 대한 예) 도움이되지 않았다 :

  • /api/v1/bars?page[size]=-1 - 값이 허용되지
  • /api/v1/bars?page[size]=0-
  • /api/v1/bars?page[size]=999999 허용되지 않는 값을 - 이 방법이 효과가있을 수 있지만 100 %

답변

1

오늘 정확히 똑같은 문제가있어이 답을 찾을 수 없습니다.

다음은이 문제를 처리 한 방법입니다. 나는 내가 할 때 명시 적으로 paginations의 PARAMS를 사용하는 데 필요한 매기기를 사용할 때마다 지금

class UserResource < JSONAPI::Resource 
    paginator :custom 
    ....user implementation 
end 

:

class CustomPaginator < PagedPaginator 
    attr_reader :limit, :offset, :disable_pagination 

    def initialize(params) 
    @disable_pagination = params.nil? 
    super 
    end 

    def apply(relation, _order_options) 
    disable_pagination ? relation : super 
    end 
end 

과 자원

는 난 그냥 아래와 같이 paginator :custom을 추가 CustomPaginator을 사용하고 싶었 요청을 서버에 보내고 사용하지 않으면 완전한 응답을 얻을 수 있습니다.

클래스 구현이 완벽하지는 않지만 (duh!) 일반적인 개념을 보여줄 것입니다.