Cómo eliminar valores en blanco params de cadena de consulta

Tengo un formulario de búsqueda, con muchas opciones, Enviado a una ruta con Solicitud de obtención. La URL es algo como esto:

http://localhost:3000/restaurants/search?utf8=%E2%9C%93&city=&cuisine=&number_of_people=&query=hello

con mucho mas params. Quiero hacer que esté más limpio, como eliminar todos los parámetros que están en blanco.

algo como esto: (Básicamente eliminando todos los parámetros que están en blanco)

http://localhost:3000/restaurants/search?query=hello

¿Como hacer esto?

Una forma puede ser utilizando

CGI::parse("foo=bar&bar=foo&hello=hi")

Te dio

{"foo"=>["bar"], "hello"=>["hi"], "bar"=>["foo"]}

Primero redirigir al usuario en una acción intermedia y en la intermedia, comprobar qué parámetros están en blanco, eliminarlos y, finalmente, redirigirlo a la acción real de búsqueda. Pero esto suena muy poco convincente. ¿Cómo puedo hacer esto de una mejor manera?

Respuestas a la pregunta(4)

Su respuesta a la pregunta