2012-10-17 2 views
2

내가 인기 루비 보석이 XML 객체를 루비 반환 편안한 엔드 포인트 매핑하는 방법을 확인하기 위해 아래의 URL에서 찾고 있어요 :XML, 성능 고려

https://github.com/tapajos/highrise/blob/master/lib/highrise/base.rb 

을 나는 그들이 참조 ActiveResource :: Base를 사용하여 마술처럼 뒤에서이 작업을 수행합니다. 그래서 ActiveResource을 사용

<person> 
    <id type="integer">1</id> 
    <first-name>John</first-name> 
    <last-name>Doe</last-name> 
    <title>Stand-in</title> 
    <background>A popular guy for random data</background> 
    <linkedin_url>http://us.linkedin.com/in/john-doe</linkedin_url> 
    <company-id type="integer">5</company-id> 
    <company-name>Doe Inc.</company-name> 
    <created-at type="datetime">2007-02-27T03:11:52Z</created-at> 
    <updated-at type="datetime">2007-03-10T15:11:52Z</updated-at> 
    <visible-to>Everyone</visible-to> 
.. 
</person> 

, 그냥 루비 객체에이 매핑 또는 해시를 반환

그래서 당신은 다시 같은 URI에서 XML의 일종을 얻을?

반환하는 개체의 정의는 어디에 있습니까? 태그 자원 코드처럼

은 여기에 있습니다 : https://github.com/tapajos/highrise/blob/master/lib/highrise/tag.rb 성능이 큰 관심사 인 경우

module Highrise 
    class Tag < Base 
    def ==(object) 
     (object.instance_of?(self.class) && object.id == self.id && object.name == self.name) 
    end 
    end 
end 

또한, 한 번에 여전히 activeresource을 사용하거나 XML을 구문 분석하는 빠른 방법이있다?

답변

1

ActiveResource가 모든 XML 변환을 처리하고 있습니다. /lib/highrise/base.rb에서 형식이 XML로 설정되어 있음을 알 수 있습니다. http://api.rubyonrails.org/classes/ActiveResource/Base.html#method-c-format-3D

전송 및

Person.format = ActiveResource :: 형식 : XmlFormat

Person.find을 (MIME 타입의 참조에서 수신 된 속성의 형식을 설정하십시오 ActiveResource 문서를 체크 아웃 1) # => GET /people/1.xml

ActiveResource 자체는 RESTful 리소스를 모델에 매핑합니다. 따라서 고층 쥬얼리는 RESTful 리소스를 고층으로 가리키고 ActiveResource는 이것을 레일 모델로 변환합니다.

관련 문제