Ruby on rails 如何无限制地查询ActiveResource?

Ruby on rails 如何无限制地查询ActiveResource?,ruby-on-rails,ruby,activeresource,redmine-api,Ruby On Rails,Ruby,Activeresource,Redmine Api,我正在尝试使用Redmine的ruby REST API从Redmine实例收集对象的所有条目。我正在尝试的代码: require 'rubygems' require 'active_resource' class Issue < ActiveResource::Base self.site = '<site url>' self.user = '<username>' self.password = '<password>'

我正在尝试使用Redmine的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显然是错误的。我还尝试了“:limit=>10”,得到了size==25,因此“:limit”参数似乎被完全忽略了

我还尝试了Issue.find(:all,:limit=>0)和:limit=>10,它们都返回size==25。无限制查询活动资源的正确方法是什么?

似乎ActiveResource不支持“限制”选项。如果您查看,您将看到可用的选项是“from”和“params”

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

Issue.all(params: { limit: 25})
如果我读对了,这应该行得通

不幸的是,如文件所述,100是极限参数的最大允许值

限制:响应中要显示的项目数(默认值为25,最大值为100)

您必须发出多个请求并使用offset和limit参数来获取所有记录。

ActiveResource似乎不支持“limit”选项。如果您查看,您将看到可用的选项是“from”和“params”

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

Issue.all(params: { limit: 25})
如果我读对了,这应该行得通

不幸的是,如文件所述,100是极限参数的最大允许值

限制:响应中要显示的项目数(默认值为25,最大值为100)


您将不得不发出多个请求,并使用offset和limit参数来获取所有记录。

这是正确的一步,但它似乎以100、limit:0=>size 25和limit:2000=>size 100为上限。我希望一次的得分能超过100分。我最近更新了我的答案,并链接到RedMineAPI文档。您会注意到,100被定义为最大允许值。您必须将limit和offset参数组合起来,并执行多个请求以收集所有问题。我将用一个例子更新我的答案。我将不得不看看我是否可以修改该限制,如果可以避免的话,我不希望有数百个查询,但现在就是这样。Redmine强制执行的限制可以在其代码中轻松删除,在文件:
/htdocs/app/controllers/application\u controller.rb
中有一行:
elsif limit>100\limit=100
,可以注释掉该行以删除最大100个限制。考虑到可以使用多个查询来获取任意数量的项目,并且额外的查询会对服务器造成更大的负担,强制执行100的最大限制似乎没有什么帮助。这是朝着正确的方向迈出的一步,但它的上限似乎是100,limit:0=>size 25,limit:2000=>size 100。我希望一次的得分能超过100分。我最近更新了我的答案,并链接到RedMineAPI文档。您会注意到,100被定义为最大允许值。您必须将limit和offset参数组合起来,并执行多个请求以收集所有问题。我将用一个例子更新我的答案。我将不得不看看我是否可以修改该限制,如果可以避免的话,我不希望有数百个查询,但现在就是这样。Redmine强制执行的限制可以在其代码中轻松删除,在文件:
/htdocs/app/controllers/application\u controller.rb
中有一行:
elsif limit>100\limit=100
,可以注释掉该行以删除最大100个限制。考虑到可以使用多个查询来获取任意数量的项目,并且额外的查询将对服务器造成更大的负担,强制执行100的最大限制似乎没有什么帮助。