Как стать автором
Обновить
0

Ruby on Rails: user friendly URLs

Время на прочтение2 мин
Количество просмотров3.5K
В данной статье будет показан пример как сделать красивые ссылки в Rails проекте. Ссылки вида /posts/1/ будут преобразованы в /posts/1-article-name/

Подготовка

Начнем с того что поставим рельсы последней версии, выполнив в консоли gem install rails -v=3.1.3
После окончания процесса установки джема, создаем новый проект командой rails new nice_urls. В результате у нас новый чистый проект со всеми установленными джемами, благодаря тому, что в конце генерации проекта автоматически был запущен bundler.

Создание постов

Для демонстрации нам подойдет обычный скафолдинг. Давайте сгенерируем его для статей у которых будет название и текст:
rails g scaffold Post title:string text:text
Для внесения изменений в БД, выполним миграцию командой rake db:migrate. Теперь можно запускать сервер (команда rails s) и смотреть на то, что у нас сейчас есть по адресу localhost:3000/posts
Перед нами появится привычный интерфейс добавления постов:
post scaffolding

Красивые ссылки

Идем в app/views/posts/index.html.erb и находим строчку, которая формирует ссылку на show:
<%= link_to 'Show', post %>
Здесь post является объектом, который используется при формировании пути. Его стоит заменить такой конструкцией:
post_path(:id => "#{post.id}-#{post.title.parameterize}")
Чтобы протестировать формирование ссылок на действие show, нужно добавить хотя бы одну статью, у которой будет задано название. Давайте воспользуемся интерфейсом для создания постов и назовем его «The test of nice urls». После создания в листинге постов ссылка должна вести уже не на /posts/1, а на /posts/1-the-test-of-nice-urls

Заключение

Конечно же, код на реальном проекте будет отличаться, оборачиваться в хелперы и вызываться в гораздо более удобной форме. Такое решение подойдет не везде и в некоторых ситуациях будет крайне неудобным. Здесь также не учтена вероятность использования кириллицы
Теги:
Хабы:
Всего голосов 12: ↑5 и ↓7-2
Комментарии21

Публикации

Информация

Сайт
www.ciklum.com
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Украина

Истории