2011-01-18 19 views
5

Bento_xml veren garip sonuçlar

{"New York"=>33, :Versailles => 3231}.to_xml 

ben hayır, "New York" dasherize için raylar beklerdik

<?xml version=\"1.0\" encoding=\"UTF-8\"?> 
<hash> 
    <Versailles type=\"integer\">3231</Versailles> 
    <New York type=\"integer\">33</New York> 
</hash> 

olsun bunu yaparken?

cevap

2

Bu sorun çekme isteği birleştirilmesi yoluyla kapatılır 445: https://github.com/rails/rails/pull/445

Spaces şimdi dasherized edilecektir (. Ve özel _dasherize yöntemi boşluk kullanacak geliştirilir)

{ "New York" => 33} .to_xml bu l asmaktan

..<New-York type=\"integer\">33</New-York>..

teşekkür sonuçlanacaktır ighthouse bileti & stackoverflow sorusu (tartışmalarda daha fazla bilgi eklendi); sağlanan tüm bilgilerin yardımıyla ilk raylarımı gerçekleştirmeyi başardım!

0

Ben de aynı şeyi görüyorum.

Docs göre to_xml için :dasherize seçenek hile yapmak gerekir.

Bazı yapılandırma seçenekleri aracılığıyla kullanılabilir. [...] Bu davranış ile kontrol edilebilir: Yalnızca,: hariç: skip_instruct: skip_types: dasherize ve: camelize [...] varsayılan tüm sütun isimleri dasherize etmek, ancak bu ayarı devre dışı bırakabilirsiniz : Yanlış olarak dasherize. Ayar: gerçeke doğru deve haline getir, tüm sütun isimlerini deveralize eder - bu ayrıca geçersiz kılar: dasherize.

Yani, en azından benzer:

asdf.to_xml(:dasherize => true) 

bunu ve bunu zorlamak gerektiğini :camelize seçeneği ekleyerek olmalıdır.

=> "<?xml version="1.0" encoding="UTF-8"?>\n<Hash>\n <New York type="integer">33</New York>\n <Versailles type="integer">3231</Versailles>\n</Hash>\n" 

Yani, belki birisi anomoliyi anlatabilir.

+0

Buradaki şey, sanallaştırmanın alt çizgiyi tire çizgisine dönüştürmesidir. Deve için aynı şey: "New_York harika" .camelize = "NewYork harika". Bununla birlikte, to_xml, hatalı biçimlendirilmiş bir xml ile bize izin vermemelidir – standup75

+0

Düzenlemek ve alan hakkında, İyi nokta! Duh !, ve evet, to_xml geçerli XML oluşturmalı veya bir istisna oluşturmalı ya da en azından sorunu bize bildirmenin bir yolunu bulmalı. –

0

Normalde veritabanı alanları bunları boşluklar yok, bu yüzden #to_xml dizisinin bağlamında örnek bir çöp-in-çöp-out durumdur.

İlgili konular