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