2011-03-25 9 views
6

Gergileri, XML alt çizgilarını tire işaretleriyle değiştirmeye çalışan her türlü duvara çarpıyorum. ActiveResource kullanarak bir web servisine bir gönderi yapıyorum. Bunun için her türlü düzeltmeyi denedim, sonuç olarak rayların başlatma hatalarından hiçbir etkisi olmamakla sonuçlandı. Gönderdiğim web hizmeti alt çizgi gerektirir. Ben yerinde şu alabilirsiniz eğerActiveResource XML ile tire yerine altçizgi kullanın (set: false olarak düzenleyin)

Esasen, ben iyi olması gerekir: 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. 

itibaren

birisi bu bir örnek verebilir misiniz? Maalesef sıkı bir zaman çizelgesindeyim, bu yüzden eğer birisi çok yardımcı olacak bir yardım sağlayabilirse.

Teşekkürler!

cevap

13

Bir başlatıcıda modül özniteliği false olarak ayarlamayı denediniz mi? çirkin monkeypatching yaklaşımı için

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

bakınız düzenleme geçmişi: Eğer yanıt Aşağıdaki kullanabilirsiniz 3+ raylar için

ActiveSupport.dasherize_xml = false 

.

+0

Denemeye çalıştım ancak ActiveSupport'un bu özelliğe sahip olmaması gibi çeşitli hataları vardı. Birisi bana ihtiyacım olanı getirecek bir özellik başlatıcı ayarının uygun bir örneğini verebilirse. Şu anda her bir ActiveResource modelinde to_xml'yi geçersiz kıldım – slimchrisp

+1

Herhangi bir kullanım olup olmadığını görmek için güncellenmiş cevabı kontrol edin. Bunu daha da temiz hale getirmek için kendi ActiveSource alt sınıfınızı da genişletebilirsiniz. – 20man

+0

+1. iki yorum: 1) AFAIK 'render: xml => object.to_xml (: dasherize => false)' Rails 2'de çalışmalıdır. 2) Çalıştığınız diğer iki yol ne zaman hacking çözümünü (son 2 snippet) gösterir? Gereksiz maymun avcılığını teşvik etmeyin. – tokland

İlgili konular