Ruby on rails 使用xml生成奇怪的结果
当我这么做的时候Ruby on rails 使用xml生成奇怪的结果,ruby-on-rails,xml,Ruby On Rails,Xml,当我这么做的时候 {"New York"=>33, :Versailles => 3231}.to_xml 我明白了 3231 33 我本以为rails会将“纽约”dasherize,不是吗?我也看到了同样的事情 根据文档,将:dasherize选项设置为to_xml应该可以实现这一功能 某些配置通过选项提供。[...] 此行为可以通过:only、:except、:skip_instruction、:skip_types、:dasherize和:camellize[…]进行控制
{"New York"=>33, :Versailles => 3231}.to_xml
我明白了
3231
33
我本以为rails会将“纽约”dasherize,不是吗?我也看到了同样的事情 根据文档,将
:dasherize
选项设置为to_xml
应该可以实现这一功能
某些配置通过选项提供。[...]
此行为可以通过:only、:except、:skip_instruction、:skip_types、:dasherize和:camellize[…]进行控制
默认设置是对所有列名进行dasherize,但可以禁用此设置:dasherize为false。将:camelize设置为true将对所有列名进行camelize-这也会覆盖:dasherize
因此,至少看起来:
asdf.to_xml(:dasherize => true)
应该这样做,添加:camelize
选项应该强制这样做
=> "<?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"
=>“\n\n 33\n 3231\n\n”
因此,可能有人无法释放异常。通常数据库字段中没有空格,因此您在#to_xml上下文中的示例是一个垃圾回收的情况。此问题通过合并拉取请求445解决: 现在将对空间进行dasherize(并且private _dasherize方法被增强以处理空间) {“newyork”=>33}。to_xml将导致
.33..
感谢你提出这张灯塔票和stackoverflow问题(在讨论中添加了更多信息);在提供的所有信息的帮助下,我能够完成我的第一个rails提交 问题是dasherize正在将下划线更改为破折号,而不是将空格更改为破折号。camelize也一样:“纽约很好”。camelize=“纽约很好”。尽管如此,to_xml不应该因为格式错误的xmlAbout dasherize和space而让我们失望,这一点很好!嗯!,是的,to_xml应该呈现有效的xml或引发异常,或者至少有办法通知我们问题。
=> "<?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"