Использование FriendlyID и Rails 5

Простая инструкция для внедрения ЧПУ или любого рода слагов в проект на Ruby on Rails.

В примере будут использованы гемы FriendlyID и Babosa (для поддержки кириллицы).

Базовая настройка:

1. Создание нового проекта

2. Установка необходимых гемов
Добавьте в Gemfile две строки:

3. Создание модели «Статья»

4. Настройка FriendlyID для модели «Статья»

Дополнительно необходимо внести изменения в контроллер:

5. Всё

Хранение истории слагов

При базовой настройке слаг создаётся один раз и навсегда. Если необходимо чтобы слаг создавался каждый раз при изменении атрибута из которого создаётся слаг, то необходимо в модель добавить следующий метод:

Но, если вы использовали слаг в качестве адреса страницы, то при изменении слага, все предыдущие слаги закэшированные в поисковых системах будут вести на 404. Чем FriendlyID из коробки поддерживает хранение истории для слагов.

1. Установка модуля истории из гема

2. Изменение модели для поддержки историчности слагов

3. Пересохранение всех статей с созданием слагов в истории
Если у вас уже есть какое-то количество сохранных статей, то при их пересохранении создадутся новые слаги, с поддержкой истории. Но, все существующие всё таки будут вести на 404. Чтобы это предотвратить надо пересохранить существующие статьи с текущими слагами.

Использование FriendlyID и Rails 5: 1 комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *