加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:08:39 所属栏目:百科 来源:网络整理
导读:我试图使用ActiveResource从第三方API中消耗xml数据.我可以使用RESTClient应用程序来成功验证和发出请求.我编码我的应用程序,当我提出请求时,我收到404错误.我补充说: ActiveResource::Base.logger = Logger.new(STDERR) 到我的development.rb文件,弄清楚了
我试图使用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}部分可能会做你所需要的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读