2012-04-12 9 views
5

sto usando un modello ActiveResource denominato "Setting" per la connessione a un servizio Web esterno che offre qualche risposta simile al seguente esempio:Evitare symbolication di chiavi per ActiveResource

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

Il problema è, che ActiveResource cerca di simboleggia tutti i tasti nell'hash details ma questo non è possibile e solleva uno NameError: wrong constant name 10a. C'è qualche possibilità di proibire la simbolizzazione o addirittura di evitare la trasformazione di details in un oggetto separato?

Grazie

+0

Cosa stai facendo con l'hash dei dettagli? È appena stato elaborato o lo stai salvando da qualche parte? – Solomon

risposta

0

Hai provato a impostare manualmente lo schema? Non so se puoi impostare attributi nidificati come questo.

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

Sto assumendo l'oggetto separato è un HashWithIndifferentAccess? Puoi provare a chiamare #deep_stringify_keys sull'hash dei dettagli prima di usarlo?

Problemi correlati