Rails: perdita nested hashes in params

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.

2011/3/7 Andrea P. [email protected]:

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 :slight_smile:


blog en: http://www.riffraff.info
blog it: http://riffraff.blogsome.com
work: http://cascaad.com

Il giorno 07 marzo 2011 20:06, Andrea P. [email protected] 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

Il giorno 08 marzo 2011 12:42, Andrea P. [email protected] 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 :confused:

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

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 :slight_smile: 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 :confused:

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”=>{}, …}