2011-03-25 39 views
6

我點擊各種牆壁試圖阻止使用破折號替換XML下劃線的鋼軌。我正在使用ActiveResource發佈到Web服務。我已經嘗試了各種各樣的修復方法,結果從rails初始化錯誤到結果都沒有變化。我要發佈的Web服務需要下劃線。使用下劃線而不是破折號與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?

ActiveSupport.dasherize_xml = false 

鋼軌3+你可以用你的迴應中的以下內容:

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

醜陋的monkeypatching方法見編輯歷史。

+0

我嘗試過,但有各種錯誤,包括ActiveSupport沒有該屬性。如果有人可以給我一個初始化程序設置的適當示例,那麼該屬性將爲我提供所需的內容。現在我只是重寫每個ActiveResource模型中的to_xml – slimchrisp 2011-03-25 23:17:50

+1

檢查更新後的答案以查看它是否有用。您還可以擴展您自己的ActiveResource的子類,使其更加清潔。 – 20man 2011-03-26 05:24:33

+0

+1。兩條評論:1)AFAIK'render:xml => object.to_xml(:dasherize => false)'應該可以在Rails 2中工作。2)爲什麼當你顯示的其他兩種方式工作時顯示黑客解決方案(最後2個片段)?不要鼓勵不必要的monkeypatching。 – tokland 2013-01-16 11:28:54

相關問題