如何在没有限制的情况下查询ActiveResource?

时间:2015-02-27 17:26:15

标签: ruby-on-rails ruby activeresource redmine-api

我正在尝试使用其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的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

似乎&#34;限制&#34; ActiveResource不支持选项。如果您查看了documentation,您会看到可用选项来自&#39;和&#39; params&#39;。

我的猜测是返回的资源数量由服务服务器决定。你尝试过这样的事吗?

Issue.all(params: { limit: 25})

如果我正确阅读redmine api documentation,这应该有用。

不幸的是,如文档中所述,100是限制参数的最大允许值。

  

limit:响应中存在的项目数(默认值为25,最大值为100)

您必须发出多个请求并使用偏移和限制参数来获取所有记录。