ruby-on-rails – 从ActiveResource请求中删除.xml扩展名

我试图使用ActiveResource从第三方API中消耗xml数据.我可以使用RESTClient应用程序来成功验证和发出请求.我编码我的应用程序,当我提出请求时,我收到404错误.我补充说:
ActiveResource::Base.logger = Logger.new(STDERR)

到我的development.rb文件,弄清楚了问题. API会以xml数据的形式响应不能以xml结尾的请求. EG,这在RESTClient中有效:

https://api.example.com/contacts

但ActiveResource正在发送此请求

https://api.example.com/contacts.xml

有没有“漂亮”的方式从ActiveResource生成的请求中剥离扩展?

谢谢

解决方法

您可能需要覆盖模型中的 element_path方法.

根据API,目前的定义如下:

def element_path(id,prefix_options = {},query_options = nil)
  prefix_options,query_options = split_options(prefix_options) if query_options.nil?  
  "#{prefix(prefix_options)}#{collection_name}/#{id}.#{format.extension}#{query_string(query_options)}"
end

删除.#{format.extension}部分可能会做你所需要的.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...