Repolode
norman

norman/friendly_id

Uma gem Ruby para Active Record que gera slugs legíveis para encontrar modelos por uma string, como um nome, em vez de um ID numérico.

Estrelas
6,222
Forks
591
Issues abertas
33
Último commit
há 3 meses

O que é?

FriendlyId é uma gem Ruby para Active Record que cria slugs legíveis para URLs com base nos atributos de um modelo. Com ela, uma URL como /states/washington pode substituir outra que usa uma chave primária numérica, como /states/4323454, e o método find do modelo aceita qualquer uma das formas.

Para usar a gem, adicione uma coluna de slug à tabela, declare no modelo o atributo que será usado para gerar o slug com friendly_id e troque Model.find por Model.friendly.find nos controllers. A gem também inclui um gerador para criar o arquivo de configuração e as migrations, além de uma opção para evitar que RecordNotFound seja lançado, passando allow_nil.

O projeto também atende a necessidades mais avançadas, incluindo histórico e versionamento de slugs, i18n, slugs com escopo, palavras reservadas e geradores de slug personalizados. A gem tem licença MIT e, até a versão 5.x, oferece suporte ao Rails 4.0 e versões posteriores.

Recursos principais

  • 01Gera slugs a partir dos atributos do modelo e os armazena em uma coluna dedicada.
  • 02Permite que find aceite um slug ou uma chave primária numérica.
  • 03Mantém o histórico de slugs para que URLs antigas continuem funcionando.
  • 04Oferece suporte a slugs com escopo, palavras reservadas e geradores de slug personalizados.
  • 05Inclui suporte a i18n para slugs.

Casos de uso

  • Criar páginas Rails cujas URLs exibem o nome de um produto, usuário ou artigo em vez de um ID.
  • Preservar links antigos depois que o título de um registro muda, usando o histórico de slugs.
  • Adicionar permalinks legíveis a uma aplicação Rails existente que já tenha registros.

Início rápido

  1. 1

    Adicione a gem ao seu Gemfile

  2. 2

    Instale as dependências

    bundle install
  3. 3

    Gere o arquivo de configuração e a migration do FriendlyId

    rails generate friendly_id
  4. 4

    Execute as migrations

    rails db:migrate

Antes de usar

  • Funciona apenas com Ruby on Rails e modelos do Active Record.
  • Depois de adicionar o FriendlyId, é necessário gerar manualmente os slugs dos registros existentes.

Tópicos

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

Perguntas frequentes

O que é friendly_id?
Uma gem Ruby para Active Record que gera slugs legíveis para encontrar modelos por uma string, como um nome, em vez de um ID numérico. FriendlyId é uma gem Ruby para Active Record que cria slugs legíveis para URLs com base nos atributos de um modelo. Com ela, uma URL como /states/washington pode substituir outra que usa uma chave primária numérica, como /states/4323454, e o método find do modelo aceita qualquer uma das formas.
friendly_id é gratuito? Qual é a licença?
friendly_id é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
friendly_id ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de friendly_id foi em 18 de ago. de 2026.
Para que posso usar friendly_id?
Criar páginas Rails cujas URLs exibem o nome de um produto, usuário ou artigo em vez de um ID. Preservar links antigos depois que o título de um registro muda, usando o histórico de slugs. Adicionar permalinks legíveis a uma aplicação Rails existente que já tenha registros.
Como instalar friendly_id?
Adicione a gem ao seu Gemfile Instale as dependências: bundle install Gere o arquivo de configuração e a migration do FriendlyId: rails generate friendly_id Execute as migrations: rails db:migrate
Onde consigo friendly_id?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/norman/friendly_id

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados

Biblioteca de paginação independente de framework para Ruby puro, com paginadores por offset, keyset, busca e calendário para Rails, Sinatra e outros frameworks.

5 mil446RubyMITBem mantidoAtualizado anteontem