我正在尝试使用其ruby REST API从Redmine实例收集对象的所有条目。我正在尝试的代码:
require 'rubygems'
require 'active_resource'
class Issue < ActiveResource::Base
self.site = '<site url>'
self.user = '<username>'
self.password = '<password>'
self.format = :xml
end
test = Issue.all
puts test.size
test = Issue.all(:limit => 0)
puts test.size
结果输出为:
25
25
数据库中有数千个条目,因此大小为25显然是关闭的。我也尝试了“:limit =&gt; 10”并得到了一个大小== 25,所以似乎完全忽略了':limit'参数。
我也尝试过Issue.find(:all,:limit =&gt; 0)和:limit =&gt; 10,两者都返回大小== 25.在没有限制的情况下查询active_resource的正确方法是什么?
答案 0 :(得分:4)
似乎&#34;限制&#34; ActiveResource不支持选项。如果您查看了documentation,您会看到可用选项来自&#39;和&#39; params&#39;。
我的猜测是返回的资源数量由服务服务器决定。你尝试过这样的事吗?
Issue.all(params: { limit: 25})
如果我正确阅读redmine api documentation,这应该有用。
不幸的是,如文档中所述,100是限制参数的最大允许值。
limit:响应中存在的项目数(默认值为25,最大值为100)
您必须发出多个请求并使用偏移和限制参数来获取所有记录。