Вы можете использовать именованные маршруты. Это позволит использовать «-» в качестве разделителей слов. В маршрутах .rb,
map.name_of_route 'a-b-c', :controller => 'my_controller', :action => "my_action"
Теперь URL-адреса типа http://my_application/a-b-c перейдут к указанному контроллеру и выполнят действие.
Также для создания динамических URL
map.name_of_route 'id1-:id2-:id3', :controller => 'my_controller', :action => "my_action"
в этом случае 'id1, id2 & id2 будут переданы как http-параметры в действие
В вас действия и взгляды,
name_of_route_url(:id1=>val1, :id2=>val2, :id3=>val3)
оценил бы к URL 'http://my_application/val1-val2-val3'.