Repolode
norman

norman/friendly_id

Una gem de Ruby para Active Record que genera slugs legibles y permite encontrar modelos mediante cadenas como un nombre, en lugar de un ID numérico.

Estrellas
6,222
Forks
591
Issues abiertos
33
Último commit
hace 3 meses

¿Qué es?

FriendlyId es una gem de Ruby para Active Record que crea slugs legibles para URL a partir de atributos de los modelos. Permite sustituir una URL como /states/4323454, que usa una clave primaria numérica, por otra como /states/washington; el método find del modelo acepta ambas formas.

Para usarla, agrega una columna para el slug a una tabla, declara en el modelo con friendly_id el atributo del que se generará el slug y cambia en los controladores Model.find por Model.friendly.find. La gem también incluye un generador para crear su archivo de configuración y las migraciones, además de una opción para evitar que se lance RecordNotFound pasando allow_nil.

El proyecto también cubre necesidades más avanzadas, como el historial y el versionado de slugs, i18n, slugs con ámbito, palabras reservadas y generadores de slugs personalizados. Tiene licencia MIT y es compatible con Rails 4.0 y versiones posteriores mediante las versiones 5.x de la gem.

Funciones clave

  • 01Genera slugs a partir de atributos de los modelos y los guarda en una columna específica.
  • 02Permite que find acepte tanto un slug como una clave primaria numérica.
  • 03Conserva el historial de slugs para que las URL antiguas sigan resolviéndose.
  • 04Admite slugs con ámbito, palabras reservadas y generadores de slugs personalizados.
  • 05Incluye compatibilidad con i18n para los slugs.

Casos de uso

  • Crear páginas de Rails cuyas URL muestren el nombre de un producto, usuario o artículo en lugar de un ID.
  • Conservar enlaces antiguos cuando cambia el título de un registro mediante el historial de slugs.
  • Agregar enlaces permanentes legibles a una aplicación Rails existente que ya contiene registros.

Inicio rápido

  1. 1

    Añade la gema a tu Gemfile

  2. 2

    Instala las dependencias

    bundle install
  3. 3

    Genera el archivo de configuración y la migración de FriendlyId

    rails generate friendly_id
  4. 4

    Ejecuta las migraciones

    rails db:migrate

Antes de usarlo

  • Solo funciona con Ruby on Rails y modelos de Active Record.
  • Después de añadir FriendlyId, debes generar manualmente los slugs de los registros existentes.

Temas

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

Preguntas frecuentes

¿Qué es friendly_id?
Una gem de Ruby para Active Record que genera slugs legibles y permite encontrar modelos mediante cadenas como un nombre, en lugar de un ID numérico. FriendlyId es una gem de Ruby para Active Record que crea slugs legibles para URL a partir de atributos de los modelos. Permite sustituir una URL como /states/4323454, que usa una clave primaria numérica, por otra como /states/washington; el método find del modelo acepta ambas formas.
¿friendly_id es gratuito? ¿Qué licencia tiene?
friendly_id es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿friendly_id sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de friendly_id fue el 18 ago 2026.
¿Para qué puedo usar friendly_id?
Crear páginas de Rails cuyas URL muestren el nombre de un producto, usuario o artículo en lugar de un ID. Conservar enlaces antiguos cuando cambia el título de un registro mediante el historial de slugs. Agregar enlaces permanentes legibles a una aplicación Rails existente que ya contiene registros.
¿Cómo se instala friendly_id?
Añade la gema a tu Gemfile Instala las dependencias: bundle install Genera el archivo de configuración y la migración de FriendlyId: rails generate friendly_id Ejecuta las migraciones: rails db:migrate
¿Dónde consigo friendly_id?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/norman/friendly_id

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados

Biblioteca de paginación para Ruby puro, independiente del framework, con paginadores por offset, keyset, búsqueda y calendario para Rails, Sinatra y otros frameworks.

5 mil446RubyMITBien mantenidoActualizado hace 3 días