Repolode
norman

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. 1

    Добавьте gem в Gemfile

  2. 2

    Установите зависимости

    bundle install
  3. 3

    Создайте файл конфигурации и миграцию FriendlyId

    rails generate friendly_id
  4. 4

    Выполните миграции

    rails db:migrate

Что важно знать

  • Работает только с Ruby on Rails и моделями Active Record.
  • После добавления FriendlyId для существующих записей необходимо вручную создать слаги.

Темы

#ruby#rails#active-record#slug#friendly-url#permalink#plugin

Частые вопросы

Что такое 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 с базой данных.

59,1 тыс.+229 за неделю23,8 тыс.RubyMITОбновлён 5 часов назад

Универсальная библиотека пагинации для Ruby: поддерживает пагинацию по смещению, ключам, поиску и календарю в Rails, Sinatra и других фреймворках.

5 тыс.446RubyMITАктивно поддерживаетсяОбновлён позавчера

Платёжный движок для Ruby on Rails, добавляющий поддержку клиентов, подписок, платежей и способов оплаты через Stripe, Paddle, Braintree и Lemon Squeezy.

2,3 тыс.359RubyMITАктивно поддерживаетсяОбновлён 5 дней назад