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!
小智.. 10
是的,ActiveResource目前在数据格式方面有点不灵活.
原则上,您可以JsonWithRootFormat
根据模块自己编写自定义格式模块(例如),ActiveResource::Formats::JsonFormat
然后将其指定为模型中的格式:
self.format = :json_with_root
但是,ActiveResource::Base
与格式无关 - 它目前正在检查您是否正在使用XmlFormat
,并且只在您通过根节点时才通过.
所以你可以通过制作自己的格式模块和猴子修补来获得你想要的东西ActiveResource::Base
,但这并不理想.不过,我肯定Base
会欢迎一个能让格式无关的补丁.
是的,ActiveResource目前在数据格式方面有点不灵活.
原则上,您可以JsonWithRootFormat
根据模块自己编写自定义格式模块(例如),ActiveResource::Formats::JsonFormat
然后将其指定为模型中的格式:
self.format = :json_with_root
但是,ActiveResource::Base
与格式无关 - 它目前正在检查您是否正在使用XmlFormat
,并且只在您通过根节点时才通过.
所以你可以通过制作自己的格式模块和猴子修补来获得你想要的东西ActiveResource::Base
,但这并不理想.不过,我肯定Base
会欢迎一个能让格式无关的补丁.