2017-02-26 68 views
1

我在我的Rails应用程序中使用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

我今天得到了完全相同的问题,并发现这个未答复的问题。

以下是我如何处理该问题。

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 

,并在资源,我想用CustomPaginator我只是说paginator :custom象下面这样:

​​ 现在

每当我想使用分页程序我需要明确地使用paginations PARAMS当我做请求到服务器,当我不使用它们时,我会得到完整的无响应的响应。

该类的实现并不完美(杜!),但它只是为了向您展示一般概念

相关问题