Encontre chamadas de modelos impertinentes em suas visualizações

Achei isso muito útil em um projeto em que quase todas as visualizações estavam solicitando coisas do banco de dados, em vez de deixar o controlador cuidar disso.

Eu tenho algumas pequenas regexes com vários níveis de especificidade para ajudá-lo a buscar e destruir!

No vim com Fugitive, execute:

:Ggrep "(<%|=|-).*[A-Z].*.(find|order|where|includes|all)" app/views/

Isso encontrará locais onde alguém está usando classes de modelo com consultas em suas visualizações. Isso deve funcionar para as visualizações erb e haml. Você provavelmente obterá algumas correspondências falsas (eliminei as mais comuns, como títulos de links em letras maiúsculas em uma chamada link_to, por exemplo), mas no geral consegui reduzir uma tonelada de códigos impertinentes.

Se você quiser pegar outras coisas irritantes (como usar chamadas Time.now), você pode procurar quais classes devem ser usadas nas visualizações:

:Ggrep "(<%|=|-).*[A-Z].*." app/views

Se você quiser ser ainda mais simples, pode apenas procurar por essas consultas ActiveRelation:

:Ggrep "(find|order|where|includes|all)" app/views/

Ambos também funcionam na linha de comando (se você ainda não tiver o Fugitive em seu vim) substituindo: Ggrep por git-grep:

git-grep "(find|order|where|includes|all)" app/views/

Com essas ferramentas em seu cinto, você pode encontrar todas as chamadas para o banco de dados em suas visualizações e melhorar seu aplicativo Rails.

Deixe-me saber se esta dica foi útil em @mathiasx no Twitter!