Ruby on rails 在ActiveResourceXML中使用下划线而不是破折号(将:dasherize设置为false)
我试图阻止rails用破折号替换XML下划线,这让我遇到了各种各样的麻烦。我正在使用ActiveResource向web服务发布帖子。我尝试了各种各样的修复方法,结果从rails初始化错误到完全无效。我发布到的web服务需要下划线 基本上,如果我能做到以下几点,我应该是优秀的: 从 有人能举个例子吗?不幸的是,我的时间很紧,所以如果有人能提供帮助,那将是一个巨大的帮助Ruby on rails 在ActiveResourceXML中使用下划线而不是破折号(将:dasherize设置为false),ruby-on-rails,ruby-on-rails-3,activeresource,Ruby On Rails,Ruby On Rails 3,Activeresource,我试图阻止rails用破折号替换XML下划线,这让我遇到了各种各样的麻烦。我正在使用ActiveResource向web服务发布帖子。我尝试了各种各样的修复方法,结果从rails初始化错误到完全无效。我发布到的web服务需要下划线 基本上,如果我能做到以下几点,我应该是优秀的: 从 有人能举个例子吗?不幸的是,我的时间很紧,所以如果有人能提供帮助,那将是一个巨大的帮助 谢谢 是否尝试在初始值设定项中将模块属性设置为false ActiveSupport.dasherize_xml = false
谢谢 是否尝试在初始值设定项中将模块属性设置为false
ActiveSupport.dasherize_xml = false
对于rails 3+,您可以在响应中使用以下内容:
render :xml => object.to_xml(:dasherize => false)
请参阅编辑历史以了解丑陋的monkeypatching方法。我尝试过,但出现了各种错误,包括ActiveSupport没有该属性。如果有人能给我一个适当的例子,初始化设置属性,这将得到我需要的。现在,我只是在每个ActiveResource模型中重写为_xml,检查更新后的答案是否有用。您还可以扩展自己的ActiveResource子类,使其更干净。+1。两条注释:1)AFAIK
render:xml=>object.to_xml(:dasherize=>false)
应该在Rails 2中工作。2) 为什么显示黑客解决方案(最后2个代码片段),而其他两种显示方式都有效?不要鼓励不必要的修补。@tokland编辑历史只显示您的建议;我同意,蒙基补丁几乎总是一种罪恶。本着一种更为现代的回答精神,我正在删除丑陋的部分。谢谢
render :xml => object.to_xml(:dasherize => false)