如何无限制地查询ActiveResource?
How do I query ActiveResource without a limit?
我正在尝试使用其 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 => 10" 并得到一个大小 == 25,所以似乎 ':limit' 参数被完全忽略了。
我也尝试了Issue.find(:all, :limit => 0) 和 :limit => 10,两者都返回了 size == 25。查询 [=21 的正确方法是什么=]没有限制?
ActiveResource 似乎不支持 "limit" 选项。如果查看 documentation,您会看到可用的选项是 'from' 和 'params'。
我的猜测是返回的资源数量是由服务服务器决定的。你尝试过这样的事情吗?
Issue.all(params: { limit: 25})
如果我正确阅读 redmine api documentation,这应该可以工作。
不幸的是,如文档中所述,100 是 limit 参数的最大允许值。
limit: the number of items to be present in the response (default is 25, maximum is 100)
您将必须发出多个请求并使用 offset 和 limit 参数来获取所有记录。
我正在尝试使用其 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 => 10" 并得到一个大小 == 25,所以似乎 ':limit' 参数被完全忽略了。
我也尝试了Issue.find(:all, :limit => 0) 和 :limit => 10,两者都返回了 size == 25。查询 [=21 的正确方法是什么=]没有限制?
ActiveResource 似乎不支持 "limit" 选项。如果查看 documentation,您会看到可用的选项是 'from' 和 'params'。
我的猜测是返回的资源数量是由服务服务器决定的。你尝试过这样的事情吗?
Issue.all(params: { limit: 25})
如果我正确阅读 redmine api documentation,这应该可以工作。
不幸的是,如文档中所述,100 是 limit 参数的最大允许值。
limit: the number of items to be present in the response (default is 25, maximum is 100)
您将必须发出多个请求并使用 offset 和 limit 参数来获取所有记录。