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

前端之家收集整理的这篇文章主要介绍了如何使用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更多的格式不可知将受到欢迎.

猜你在找的Ruby相关文章