2014-11-06 4 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 
관련 문제