Como filtrar buscas do rails routes

Dicas - 07/Jun/2020 - por André Kanamura

O framework Ruby on Rails nos oferece o comando rails routes para listar todas as rotas que estamos criando na aplicação. No entanto, ao longo do tempo, a quantidade de rotas criadas pode ficar difícil de manejar. Por isso é útil termos uma maneira de filtrar os resultados do comando rails routes para limitar a quantidade de itens apresentados na tela. Antes da versão 5 do Rails, era necessário usar o grep, por exemplo:

$ rails routes | grep user

O grep limita os resultados somente àqueles que apresentarem o termo procurado, no caso user. Note que a linha de títulos das colunas Prefix, Verb, URI Pattern e Controller#Action será ignorada se a busca não incluir nenhum dos termos entre os títulos.

A partir do Rails 5, foram adicionadas opções ao comando rails routes: -g e -c.

Mais ou menos da mesma forma que o grep, a opção -g apresenta as rotas cujo verbo, prefixo, controller ou URI corresponderem ao termo pesquisado. A diferença do grep é que os resultados com -g são formatados de forma mais adequada na tela, incluindo sempre os títulos normalmente ignorados pelo grep.

$ rails routes -g user

A opção -c permite buscas específicas a controllers. Nesta opção a busca não diferencia maiúsculas e minúsculas, então devise e DeviseController devem retornar os mesmo resultados. Além disso, você pode filtrar pelo nome da classe, por exemplo:

$ rails routes -c devise

# ou 

$ rails routes -c DeviseController

Referências

Foto de perfil do autor
André Kanamura

Dev na Campus Code