我在我的Rails应用中使用ExecuteListener
。我的一个资源是使用jsonapi-resources gem。有时我想禁用分页并确保用户返回所有结果。
我尝试使用一些自定义过滤器进行自定义实现,但失败了。
我试过传递"怪异的"值为paginator,但这没有帮助(分页分页器的示例):
/api/v1/bars?page[size]=0
- 值不允许/api/v1/bars?page[size]=999999
- 值不允许Activity
- 当然,这可能有用,但它是100%答案 0 :(得分:2)
我今天遇到了完全相同的问题,并发现了这个悬而未决的问题。
以下是我处理问题的方法。
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
现在每当我想使用paginator时,我需要明确使用paginations params,当我向服务器发出请求时,当我不使用它们时,我会得到完全不合理的响应。
课程实施并不完美(呃!)但它只是为了向您展示一般概念