2011-01-18 34 views
5

Khi tôi làm điều đóto_xml cho kết quả kỳ lạ

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

tôi nhận được

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

tôi dự kiến ​​sẽ có đường ray để dasherize "New York", đúng không?

Trả lời

2

Vấn đề này được đóng qua việc sáp nhập theo yêu cầu kéo 445: https://github.com/rails/rails/pull/445

Spaces bây giờ sẽ được dasherized (. Và phương pháp _dasherize tin được tăng cường để xử lý không gian)

{ "New York" => 33} .to_xml sẽ dẫn đến

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

Cảm ơn bạn đã đưa lên l này ighthouse ticket & câu hỏi stackoverflow (bổ sung thêm thông tin trong các cuộc thảo luận); với sự giúp đỡ của tất cả các thông tin được cung cấp, tôi đã có thể làm cho các đường ray đầu tiên của tôi cam kết!

0

Tôi cũng thấy điều tương tự.

Theo tài liệu, tùy chọn :dasherizeto_xml nên thực hiện thủ thuật.

Một số cấu hình có sẵn thông qua các tùy chọn. [...] Hành vi này có thể được kiểm soát với: chỉ,: ngoại trừ,: skip_instruct,: skip_types,: dasherize và: lạc đà [...] Mặc định là hủy kích hoạt tất cả tên cột, nhưng bạn có thể tắt cài đặt này : dasherize thành false. Cài đặt: camelize thành true sẽ camelize tất cả các tên cột - điều này cũng ghi đè: dasherize.

Vì vậy, có vẻ như, ở mức tối thiểu:

asdf.to_xml(:dasherize => true) 

nên làm điều đó, và thêm các tùy chọn :camelize nên buộc nó.

=> "<?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" 

Vì vậy, có thể ai đó có thể 'làm mất anomoly.

+0

Vấn đề là việc dasherize đang thay đổi dấu gạch dưới thành dấu gạch ngang, không phải dấu cách để gạch ngang. Cùng một điều cho lạc đà: "New_York là tuyệt vời" .camelize = "NewYork là tuyệt vời". Tuy nhiên to_xml không nên cho chúng tôi xuống với một xml – standup75

+0

không đúng định dạng Giới thiệu về sự phá hủy và không gian, Điểm tốt! Duh !, và, vâng, to_xml sẽ hiển thị XML hợp lệ hoặc tăng ngoại lệ hoặc ít nhất có cách để thông báo cho chúng tôi về sự cố. –

0

Các trường cơ sở dữ liệu thông thường không có dấu cách trong đó, vì vậy ví dụ của bạn trong ngữ cảnh #to_xml là tình huống rác-trong-rác-ra-rác.

Các vấn đề liên quan