2009-09-08 6 views
1

내 프로젝트에 여러 ActiveResource 모델이 있습니다. 내 ActiveResource에서 to_xml을 호출 할 때 내게 너무 이상했다. to_xml에 전달 된 옵션은 : 및 : except는 전혀 작동하지 않습니다. ActiveRecord에서 정말 잘 작동합니다. 누구?왜 ActiveResource의 to_xml이 제대로 작동하지 않습니까?

class Node < ActiveResource::Base 
    self.site = NODE_SERVER 
end 

# node has uuid, name, type attributes 
node = Node.find("3333") 
node.to_xml(:only => [:uuid]) 

# after here, i still get all attributes 
+0

코드를 형식화하십시오 ... – Lichtamberg

+0

to_xml이 (가) XML 문자열을 반환합니다. 그 결과로 무엇을하고 있습니까? – jonnii

+0

나는 그것을 클라이언트에게 돌려 보낼 것이다. – Chamnap

답변

1

ActiveResource :: Base # to_xml의 구현은 ActiveRecord :: Base와 다릅니다.

http://api.rubyonrails.org/classes/ActiveResource/Base.html#M000914

ActiveResource :: 자료 #의 to_xml는 :indent, :dasherize, :camelize and :skip_instruct.

+0

구현이 다르게 생각하지 않습니다. 필자의 견해로는 activeresource 객체의 attributes.to_xml (해시 객체)을 호출했을뿐입니다. 또한 to_xml에는 ActiveSupport가 함께 제공됩니다. 해시에서 to_xml을 호출하려고 시도하면 해쉬가 작동하지 않는다는 것을 알 수 있습니다. – Chamnap

+0

아니요, 구현이 다릅니다. ARecord :: Base.to_xml은 XmlSerializer를 사용하지만, AResource :: Base.to_xml은 완전히 다른 직렬화 방법을 사용합니다. 또한 두 구현 모두 Rails API 설명서에 지정된대로 다양한 옵션을 허용합니다. 즉, RTFM :). – bartzon

+0

네 말이 맞아. 나는 어제 코드를 살펴 봤다. – Chamnap

0

"여기 이후에도 나는 모든 속성을 얻습니다"라고 말합니다. node.to_xmlnode 자체가 변경 될 것으로 생각되지만 그렇지 않습니다. 해야 할 일

다음으로 xml을 참조하십시오.

+0

번호. 나는 to_xml이 여전히 모든 속성을 반환한다는 것을 의미합니다. 너 아직 그걸 시도 했니? – Chamnap

1

to_xmlActiveRecord에 대한 방법과 ActiveResource는 독립적 인 구현입니다을 받아 참조하십시오. 그것은 그들이 똑같은 행동을하거나 같은 주장을하는 것을 기대할 수 없다는 것을 의미합니다.

관련 문제