# Rails: perdita nested hashes in params

**URL:** <https://www.ruby-forum.com/t/rails-perdita-nested-hashes-in-params/204203>\
**Category:** IT\
**Created:** [March 7, 2011, 8:07pm UTC](https://www.ruby-forum.com/t/rails-perdita-nested-hashes-in-params/204203 "2011-03-07T20:07:04Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [March 7, 2011, 8:07pm UTC](https://www.ruby-forum.com/t/rails-perdita-nested-hashes-in-params/204203/1 "2011-03-07T20:07:04Z")

</div>

salve a tutti,

come da oggetto, sto litigando con la perdita di valori dentro l’array  
params.

dai log, vedo che la richiesta arriva correttamente in questo modo:

Parameters: {  
…  
“tags”=\> {  
“group1”=\>{“keyA”=\>“ValueA”},  
“group2”=\>{  
“keyX”=\>“valueX”,  
“keyY”=\>“valueY”  
},  
“group3”=\>{“keyZ”=\>“valueZ”}  
},  
…  
}

da controller, quando accedo all’oggetto “params”, la chiave “tags”  
esiste, ma  
vuota, ha perso gli hash al suo interno (!!)

tra esperimenti vari, google, API docs (in particolare la parte che  
riguarda  
ActiveSupport::HashWithIndifferentAccess) e stackoverflow, non sono  
riuscito a  
trovare una soluzione.

giusto per chiarezza:

- se ricreo manualmente lo stesso hash di parametri in console, funziona
- ruby 1.9.2p136 (2010-12-25 revision 30365) [x86\_64-linux]
- rails v3.0.5

qualcuno di voi ha gi incontrato un problema simile? eventuali  
suggerimenti?

grazie in anticipo,  
A.

---

<div class="post-metadata">

**Author:** ![stanley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ab992/32.png) [@stanley](https://www.ruby-forum.com/u/stanley)\
**Post date:** [March 8, 2011, 11:16am UTC](https://www.ruby-forum.com/t/rails-perdita-nested-hashes-in-params/204203/2 "2011-03-08T11:16:54Z")

</div>

2011/3/7 Andrea P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> qualcuno di voi ha gi incontrato un problema simile? eventuali suggerimenti?

non ne sono sicuro ma ho il sospetto di aver visto una cosa simile.  
Purtroppo rivedendo il codice, sembra che adesso usi un array, as in

“tags”=\> [  
{“keyA”=\>“ValueA”},  
{  
“keyX”=\>“valueX”,  
“keyY”=\>“valueY”  
},  
{“keyZ”=\>“valueZ”}  
]

per _forse_ pu andare bene pure a te come soluzione e siccome questa  
funziona  
puoi provare se va bene 🙂

–  
blog en: [http://www.riffraff.info](http://www.riffraff.info)  
blog it: [http://riffraff.blogsome.com](http://riffraff.blogsome.com)  
work: [http://cascaad.com](http://cascaad.com)

---

<div class="post-metadata">

**Author:** ![stanley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ab992/32.png) [@stanley](https://www.ruby-forum.com/u/stanley)\
**Post date:** [March 8, 2011, 11:54am UTC](https://www.ruby-forum.com/t/rails-perdita-nested-hashes-in-params/204203/3 "2011-03-08T11:54:31Z")

</div>

Il giorno 07 marzo 2011 20:06, Andrea P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
scritto:

> ```
> "group1"=>{"keyA"=>"ValueA"},
> 
> ```
> 
> ma
> 
> - ruby 1.9.2p136 (2010-12-25 revision 30365) [x86\_64-linux]
> - rails v3.0.5
> 
> qualcuno di voi ha gi incontrato un problema simile? eventuali  
> suggerimenti?

Cosa passi come parametri nel form?  
Puoi incollarci l’html?

Prova a fare delle prove con curl, magari hai qualche problema nella  
vista  
che ti sfugge :).

Matteo

---

<div class="post-metadata">

**Author:** ![stanley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ab992/32.png) [@stanley](https://www.ruby-forum.com/u/stanley)\
**Post date:** [March 8, 2011, 12:55pm UTC](https://www.ruby-forum.com/t/rails-perdita-nested-hashes-in-params/204203/4 "2011-03-08T12:55:20Z")

</div>

Il giorno 08 marzo 2011 12:42, Andrea P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
scritto:

> che  
> devo applicare alcuni effetti con JS: anzich mostrare le checkbox, vengono  
> visualizzati come pulsanti da attivare/disattivare.

Eh, ma volevo vedere l’html per capire cosa esattamente veniva inviato  
al  
server :P. Cos non dice niente, tranne che quella riga potrebbe il  
colpevole della situazione ( incasinata, l’hai detto tu). Ti consiglio  
di  
metterla in un helper e testarla a dovere :).

> params[:tags] esiste, ma vuota e non capisco come/quando/dove/perch si  
> perde  
> i valori 😕

prova, senza guardare n l’html n i log del web server a fare una  
richiesta  
con curl, basandosi solo su quello che il tuo controller accetta.  
Se riceve i parametri un problema nella vista, altrimenti  
nell’applicazione del web server.  
Te lo dico perch per la mia esperienza al 90% un problema di vista, in  
cui i campi del form sono generati male.

Matteo

---

<div class="post-metadata">

**Author:** ![stanley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ab992/32.png) [@stanley](https://www.ruby-forum.com/u/stanley)\
**Post date:** [March 8, 2011, 12:43pm UTC](https://www.ruby-forum.com/t/rails-perdita-nested-hashes-in-params/204203/5 "2011-03-08T12:43:25Z")

</div>

Il 08/03/2011 11:54, Matteo C. ha scritto:

> Cosa passi come parametri nel form?  
> Puoi incollarci l’html?

ti incollo la porzione che genera il tag:

= check\_box\_tag “tags[#{category}][#{tagging}]”,“#{tag\_str}”, false

anche se gli argomenti passati possono sembrare un po’ strambi, il  
motivo che  
devo applicare alcuni effetti con JS: anzich mostrare le checkbox,  
vengono  
visualizzati come pulsanti da attivare/disattivare.

> Prova a fare delle prove con curl, magari hai qualche problema nella vista che  
> ti sfugge :).

ti ringrazio del consiglio 🙂 in realt, dai log del webserver vedo  
arrivare  
tutti i parametri (quindi anche i checkbox selezionati su ciascun  
gruppo).  
tuttavia, dal controller, quando accedo all’hash “params”, la chiave  
params[:tags] esiste, ma vuota e non capisco come/quando/dove/perch si  
perde  
i valori 😕

sto anche seguendo il consiglio di Gabriele, ho provato a far arrivare i  
valori  
sotto forma di array, ma il risultato per ora non cambia: nella  
richiesta al  
webserver vedo i valori, dal controller no.

per verificare, dal controller, faccio una chiamata a logger:

logger.info(“#######PARAMS: #{params}”)

ed il risultato che ottengo sempre questo:

{…, “tags”=\>{}, …}
