ORM для TypeScript и JavaScript, работающий в Node.js и других JS-средах и поддерживающий паттерны Active Record и Data Mapper для множества SQL- и NoSQL-баз данных.
norman/friendly_id
Ruby-гем для Active Record, который генерирует читаемые слаги и позволяет искать модели по строке, например имени, вместо числового ID.
- Звёзды
- 6,222
- Форки
- 591
- Открытые issues
- 33
- Последний коммит
- 3 месяца назад
Что это?
FriendlyId — Ruby-гем для Active Record, который создает удобочитаемые URL-слаги на основе атрибутов модели. С ним URL вида /states/washington может заменить адрес с числовым первичным ключом, например /states/4323454, а метод find модели принимает оба варианта.
Чтобы использовать гем, добавьте в таблицу столбец для слага, укажите в модели атрибут, из которого его нужно генерировать, с помощью friendly_id, а в контроллерах замените Model.find на Model.friendly.find. В гем также входит генератор файла конфигурации и миграций, а параметр allow_nil позволяет не выбрасывать исключение RecordNotFound.
Проект поддерживает и более сложные сценарии: историю и версионирование слагов, i18n, слаги с ограниченной областью действия, зарезервированные слова и пользовательские генераторы слагов. Гем распространяется по лицензии MIT и предназначен для Rails 4.0 и более поздних версий; указана версия гема 5.x.
Ключевые возможности
- 01Генерирует слаги на основе атрибутов модели и хранит их в отдельном столбце.
- 02Позволяет методу find принимать как слаг, так и числовой первичный ключ.
- 03Хранит историю слагов, чтобы старые URL продолжали открываться.
- 04Поддерживает слаги с ограниченной областью действия, зарезервированные слова и пользовательские генераторы слагов.
- 05Поддерживает i18n для слагов.
Сценарии использования
- Создание страниц Rails, URL которых содержат название товара, пользователя или статьи вместо ID.
- Сохранение старых ссылок после изменения заголовка записи с помощью истории слагов.
- Добавление удобочитаемых постоянных ссылок в существующее приложение Rails, в котором уже есть записи.
Быстрый старт
- 1
Добавьте gem в Gemfile
- 2
Установите зависимости
bundle install - 3
Создайте файл конфигурации и миграцию FriendlyId
rails generate friendly_id - 4
Выполните миграции
rails db:migrate
Что важно знать
- Работает только с Ruby on Rails и моделями Active Record.
- После добавления FriendlyId для существующих записей необходимо вручную создать слаги.
Темы
Частые вопросы
- Что такое friendly_id?
- Ruby-гем для Active Record, который генерирует читаемые слаги и позволяет искать модели по строке, например имени, вместо числового ID. FriendlyId — Ruby-гем для Active Record, который создает удобочитаемые URL-слаги на основе атрибутов модели. С ним URL вида /states/washington может заменить адрес с числовым первичным ключом, например /states/4323454, а метод find модели принимает оба варианта.
- friendly_id можно использовать бесплатно? Какая у него лицензия?
- friendly_id распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- friendly_id всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в friendly_id — 18 авг. 2026 г..
- Для чего можно использовать friendly_id?
- Создание страниц Rails, URL которых содержат название товара, пользователя или статьи вместо ID. Сохранение старых ссылок после изменения заголовка записи с помощью истории слагов. Добавление удобочитаемых постоянных ссылок в существующее приложение Rails, в котором уже есть записи.
- Как установить friendly_id?
- Добавьте gem в Gemfile Установите зависимости: bundle install Создайте файл конфигурации и миграцию FriendlyId: rails generate friendly_id Выполните миграции: rails db:migrate
- Где скачать friendly_id?
- Исходный код и инструкции по установке — на GitHub: https://github.com/norman/friendly_id
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Ruby on Rails — полнофункциональный MVC-фреймворк для создания веб-приложений на Ruby с базой данных.
Библиотека поиска для Ruby on Rails, которая добавляет полнотекстовый поиск в модели Active Record и Mongoid с помощью Elasticsearch или OpenSearch.
Открытый фреймворк электронной коммерции на Ruby on Rails для разработчиков, которые хотят создать собственный интернет-магазин и полностью контролировать его.
Универсальная библиотека пагинации для Ruby: поддерживает пагинацию по смещению, ключам, поиску и календарю в Rails, Sinatra и других фреймворках.
Платёжный движок для Ruby on Rails, добавляющий поддержку клиентов, подписок, платежей и способов оплаты через Stripe, Paddle, Braintree и Lemon Squeezy.