Si Params è un hash ma non il singolo valore di parmas[:val] che invece è un array.

Tant'è che con il route globbing passo il resto dell'URL che mi interessa mappare come coppie chiave/valore tramite la sintassi "products/*val". Che appunto mappa tutto in un array.

Comunque ho scoperto che così funziona:

codice:
@values = Hash[*params[:val]]

* in pratica credo "espanda" l'array prima di passarlo ad Hash[]
ed infatti poi mi ritrovo le coppie chiave/valore impostate correttamente.

credo invece che sia giusto che l'accesso diretto a:
codice:
params[:categoria]
params[:marca]
NON funzioni perchè Rails non può sapere riconoscere a priori questa struttura: "/chiave/valore"

Strano infatti infine che nell'esempio che ho indicato
http://www.informit.com/articles/art...7656&seqNum=16

manchi "*" prima di params all'interno di Hash[].