jsonapi-resources 有条件地禁用分页器

jsonapi-resources conditionally disable paginator

我用jsonapi-resources gem in my Rails app. One of my resources is using pagination。在某些情况下,我想禁用分页并确保用户将取回 所有结果

我尝试使用一些自定义过滤器进行自定义实现,但失败了。

我尝试将 "weird" 值传递给分页器,但这没有帮助(分页分页器的示例):

我今天遇到了完全相同的问题,并找到了这个未回答的问题。

下面是我是如何处理这个问题的。

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,如下所示:

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

现在每当我想使用分页器时,我需要在向服务器发出请求时显式使用分页参数,而当我不使用它们时,我将获得完整的未分页响应。

class 实现并不完美(呃!)但它只是向您展示一般概念