2011-03-25 2 views
6

레일에서 XML 밑줄을 대시로 바꾸지 않으려 고 모든 종류의 벽을 치고 있습니다. ActiveResource를 사용하여 웹 서비스에 게시하고 있습니다. 필자는 모든 종류의 수정을 시도했는데, 결과는 레일 초기화 오류에서 효과가 전혀 없음으로 변경되었습니다. 게시 할 웹 서비스에 밑줄이 필요합니다. 내가 자리에 다음과 같은 얻을 수 있다면ActiveResource XML에 대시 대신 밑줄을 사용하십시오 (설정 : dasherize를 false로 설정)

기본적으로, 내가 잘해야합니다 http://rubydoc.info/docs/rails/2.3.8/ActiveResource/Base

:dasherize - Boolean option to determine whether or not element names should replace underscores with dashes. Default is true. The default can be set to false by setting the module attribute ActiveSupport.dasherize_xml = false in an initializer. 

에서

사람이의 예를 제공 할 수 있습니까? 나는 유감스럽게도시기가 맞지 않아 누군가가 도움을 줄 수 있다면 엄청난 도움이 될 것입니다.

감사합니다.

답변

13

초기화 프로그램에서 모듈 속성을 false로 설정하려고 했습니까? 추한 monkeypatching 접근 방식에 대한

render :xml => object.to_xml(:dasherize => false) 

참조 편집 역사 : 당신은 당신의 응답에서 다음을 사용할 수 있습니다 3+ 레일

ActiveSupport.dasherize_xml = false 

.

+0

시도했지만 해당 속성이없는 ActiveSupport 등의 다양한 오류가있었습니다. 누군가 내가 필요한 것을 가져다 줄 수있는 속성을 설정하는 초기화 자의 적절한 예를 나에게 줄 수 있다면. 지금 당장은 각 ActiveResource 모델에서 to_xml을 무시하고 있습니다. – slimchrisp

+1

업데이트 된 답변이 어떤 용도로 사용되는지 확인하십시오. ActiveResource의 하위 클래스를 확장하여 더 깨끗하게 만들 수도 있습니다. – 20man

+0

+1. 두 가지 의견 : 1) AFAIK'render : xml => object.to_xml (: dasherize => false)'가 Rails 2에서 작동해야합니다. 2) 다른 두 가지 방법으로 작업 할 때 왜 해킹 솔루션 (마지막 2 단 발췌)을 보여줄 수 있습니까? 불필요한 monkeypatching을 권장하지 마십시오. – tokland

관련 문제