Jak usunąć puste wartości parametrów z ciągu zapytania

Mam formularz wyszukiwania, z wieloma opcjami, Przesłany na trasę za pomocą polecenia Pobierz. URL to coś takiego:

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

o wiele więcej parametrów. Chcę uczynić go czystszym, jak usunąć wszystkie puste parametry.

coś takiego: (Zasadniczo usunięcie wszystkich params, które są puste)

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

Jak to zrobić?

Jednym ze sposobów może być użycie

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

Daje Ci

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

Najpierw przekieruj użytkownika na akcję między działaniami, a między działaniami sprawdź, które parametry są puste i usuń je, a następnie przekieruj go na rzeczywistą akcję wyszukiwania. Ale to brzmi bardzo kiepsko. Jak mogę to zrobić w lepszy sposób?

questionAnswers(4)

yourAnswerToTheQuestion