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

前端之家收集整理的这篇文章主要介绍了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}部分可能会做你所需要的.

原文链接:https://www.f2er.com/ruby/272755.html

猜你在找的Ruby相关文章