2012-04-12 10 views
5

que estoy usando un modelo ActiveResource llamado "ajuste" para conectarse a un servicio web externo que proporciona algún tipo de respuesta como el siguiente ejemplo:Evitar symbolication de llaves para ActiveResource

{"setting" => {"id" => 10, :details => {"10a" => 7, "10b" => 8}}} 

El problema es, que ActiveResource intenta simboliza todas las teclas en el hash details pero esto no es posible y levanta un NameError: wrong constant name 10a. ¿Hay alguna posibilidad de prohibir la simbolización o incluso evitar la transformación de details a un objeto separado?

Gracias

+0

¿Qué estás haciendo con los detalles hash? ¿Se está procesando, o lo está guardando en alguna parte? – Solomon

Respuesta

0

¿Usted ha intentado ajustar su esquema manualmente? No sé si puede establecer atributos anidados como este.

class Setting < ActiveResource::Base 
    schema = {'setting' => {'id' => :integer, :details => {'10a' => :integer, '10b' => :integer}}} 
end 
0

Supongo que el objeto por separado es un HashWithIndifferentAccess? ¿Puedes intentar llamar al #deep_stringify_keys en el hash de detalles antes de usarlo?

Cuestiones relacionadas