Mic*_*ach 12 ruby rest json activeresource
ActiveRecord引入了对其默认JSON输出格式的更改.它来自
{ "user": { some_junk } }
Run Code Online (Sandbox Code Playgroud)
至
{ some_junk }
Run Code Online (Sandbox Code Playgroud)
ActiveResource显然已经跟随他们的领先,期望消耗JSON
{ some_junk }
Run Code Online (Sandbox Code Playgroud)
我正在拼命地使用一个发出的RESTful Web服务
{ "user": { some_junk } }
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉我的ActiveResource :: Base类这样做?这是我的代码.
class User < ActiveResource::Base
self.site = "http://example.com/"
self.format = :json
end
Run Code Online (Sandbox Code Playgroud)
更新:我现在放弃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!
Run Code Online (Sandbox Code Playgroud)
小智 10
是的,ActiveResource目前在数据格式方面有点不灵活.
原则上,您可以JsonWithRootFormat根据模块自己编写自定义格式模块(例如),ActiveResource::Formats::JsonFormat然后将其指定为模型中的格式:
self.format = :json_with_root
Run Code Online (Sandbox Code Playgroud)
但是,ActiveResource::Base与格式无关 - 它目前正在检查您是否正在使用XmlFormat,并且只在您通过根节点时才通过.
所以你可以通过制作自己的格式模块和猴子修补来获得你想要的东西ActiveResource::Base,但这并不理想.不过,我肯定Base会欢迎一个能让格式无关的补丁.
| 归档时间: |
|
| 查看次数: |
7137 次 |
| 最近记录: |