ActiveRecord introdujo un cambio en su formato de salida JSON predeterminado. Se pasó de¿Cómo consumir el formato JSON con ActiveResource de ruby?
{ "user": { some_junk } }
a
{ some_junk }
ActiveResource aparentemente ha seguido su ejemplo, esperando para consumir JSON como
{ some_junk }
Estoy tratando desesperadamente de consumir un servicio web REST que emite
{ "user": { some_junk } }
¿Hay alguna manera de decirle a mi clase ActiveResource :: Base que lo haga? Aquí está mi código.
class User < ActiveResource::Base
self.site = "http://example.com/"
self.format = :json
end
actualización: Estoy renunciar a ActiveResource como roto por ahora, a menos que alguien sabe la respuesta; mientras tanto, yo era capaz de lograr el GET que quería a través de
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!
El sitio está desactivado pero el seguimiento post en su github (https://github.com/vaskas/vaskas.me/blob/master/blog/ 2012/02/07/using-hashes-as-activeresource-collections/index.html) - esencia de esto es que puedes asignar tu propio objeto de formato a 'self.format'. Cree una nueva clase, 'incluya ActiveResource :: Formats :: JsonFormat' y defina su propia función' decode'. – phillmv