如何使用Ruby的ActiveResource消费JSON格式?

ActiveRecord引入了对其JSON输出格式的更改.它从
{ "user": { some_junk } }

{ some_junk }

ActiveResource显然跟随着他们的领先,期望消耗JSON

{ some_junk }

我拼命地想要消耗一个发出的RESTful Web服务

{ "user": { some_junk } }

有没有办法告诉我的ActiveResource :: Base类呢?这是我的代码

class User < ActiveResource::Base
    self.site = "http://example.com/"
    self.format = :json
end

更新:现在我放弃了ActiveResource,除非有人知道答案;在此期间,我能够实现我想要的GET

require 'httparty' # sudo gem install httparty
result = HTTParty.get('http://foo.com/bar.json',headers => { "Foo" => "Bar"})
# result is a hash created from the JSON -- sweet!

解决方法

是的,ActiveResource在数据格式方面目前有点不灵活.

原则上,您可以根据ActiveResource::Formats::JsonFormat模块为自己编写一个自定义格式模块(例如JsonWithRootFormat),然后将其指定为模型中的格式:

self.format = :json_with_root

但是,ActiveResource :: Base不是格式不可知的 – 它当前是does a check,看看你是否使用XmlFormat,只传递根节点,如果你是.

所以你可以通过制作你自己的格式模块和猴子修补ActiveResource :: Base来获得你想要的东西,但它并不理想.我确定一个补丁,使Base更多的格式不可知将受到欢迎.

相关文章

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