我正试图从Redmine那里得到问题,但是有100个问题的限制。我试图在模型中编写一个方法以获得所有问题。这是全班:
class IssueResource < ActiveResource::Base
self.site = 'http://127.0.0.1:5000'
self.element_name = "issue"
self.format = ActiveResource::Formats::XmlFormat
def self.search params
segment=IssueResource.find(:all,:params=>params)
issues=segment
while segment!= []
segment=IssueResource.find(:all,:params=>params,:having => "id < "+segment.last.id.to_s)
issues = issues+segment
end
return issues
end
end
正如您所看到的,我正在尝试having
并发送多个请求,但它不起作用。
PS:在参数中总是有:limit =&gt; 100
答案 0 :(得分:3)
having
是一个SQL运算符。这里您没有使用ActiveRecord
,而是ActiveResource
执行HTTP请求。为了安全起见,REST API永远不会允许您(或绝不允许您)提供在数据库上任意执行的SQL片段。
如果您阅读API documentation for Redmine,则会注意到没有having
参数。很可能你发明了它。
要获取所有问题,您需要做的是使用分页offset
和limit
。
Paging example:
GET /issues.xml?offset=0&limit=100
GET /issues.xml?offset=100&limit=100