Чтобы определить этот маршрут, попробуйте добавить следующее в ваш route.rb:
match '/:id' => 'your_controller#your_action'
Это будет в значительной степени соответствовать всему идентификатору вашей модели. И это не очень хорошо ... Вы не хотите направлять youe_host / pages в контроллер страниц с идентификатором, равным 'pages' ... Чтобы этого не происходило, обязательно поставьте эту строку в конце файл route.rb. Маршрутизатор использует первый маршрут, который соответствует полученному пути, поэтому, поместив эту строку в конец, вы убедитесь, что он будет соответствовать вашему маршруту только после того, как у него закончатся другие значимые параметры.
Лучше было бы передать ограничения regexp маршрутизатору, чтобы он сопоставлял идентификаторы только с определенным форматом, например:
match '/:id' => 'your_controller#your_action', :constraints => { :id => /your_regexp/ }
Обратитесь к руководствам, если у вас есть сомнения по поводу системы прокладки рельсов. Это довольно хорошо написано и охватывает много важных вещей.
Рельсовая маршрутизация - Официальные руководства
edit: чтобы создать именованный маршрут, который вы можете вызывать в своих контроллерах и переопределить обычные маршруты, которые вы, вероятно, создаете с помощью resource
, вы должны предоставить параметр :as =>
в ваш rout.rb
match '/:id' => 'your_controller#your_action', :as => some_name
Тогда вы сможете вызывать его в вашем контроллере / представлениях так:
link_to some_name_path(@my_string_id)
Надеюсь, это поможет. И найдите время, чтобы прочитать руководства, в нем действительно много полезной информации, включая более подробную информацию о создании именованных маршрутов.