当我这样做时
{"New York"=>33, :Versailles => 3231}.to_xml
我得到了
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<hash>
<Versailles type=\"integer\">3231</Versailles>
<New York type=\"integer\">33</New York>
</hash>
我原本希望铁轨能够将“纽约”变为“纽约”,不是吗?
答案 0 :(得分:2)
此问题已通过合并拉取请求445关闭:https://github.com/rails/rails/pull/445
空格现在将被破译(并且私有_dasherize方法被增强以处理空格。)
{“New York”=&gt; 33} .to_xml将导致
..<New-York type=\"integer\">33</New-York>..
感谢您提供此灯塔票和stackoverflow问题(在讨论中添加了更多信息);在所提供的所有信息的帮助下,我能够让我的第一个rails提交!
答案 1 :(得分:0)
我也看到了同样的事情。
根据文档,:dasherize
的{{1}}选项应该可以解决问题。
某些配置可通过选项获得。 [...] 此行为可以通过以下方式控制:only,:except,:skip_instruct,:skip_types,:dasherize和:camelize [...] 默认设置是对所有列名称进行dasherize,但您可以禁用此设置:dasherize为false。设置:camelize为true将驼峰所有列名称 - 这也会覆盖:dasherize。
所以,它看起来至少是:
to_xml
应该这样做,添加asdf.to_xml(:dasherize => true)
选项应该强制它。
:camelize
所以,也许有人可以'摒弃这种异象。
答案 2 :(得分:0)
通常情况下,数据库字段中没有空格,因此#to_xml上下文中的示例是垃圾乱码情况。