2014-11-06 58 views
2

我試圖從Redmine中獲得問題,但有100個問題的限制。我試圖在模型中編寫一個方法來解決所有問題。下面是全班:從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:在參數總是有:極限=> 100

回答

3

having是一個SQL操作者。這裏您沒有使用ActiveRecord,但是執行HTTP請求的是ActiveResource。爲了安全起見,REST API永遠不會允許您(或絕不允許您)提供SQL片段以便在數據庫上執行任意操作。

如果您閱讀API documentation for Redmine,您會注意到沒有having參數。這很可能是你發明的。

爲了獲取所有問題,你需要做的是使用分頁offsetlimit

Paging example: 
GET /issues.xml?offset=0&limit=100 
GET /issues.xml?offset=100&limit=100