Renderizar o template se existir no Rails

Às vezes, você tem modelos em seu código que correspondem aos registros no banco de dados. Manter e sincronizá-los é muito difícil, mas essa dica ajuda quando você só precisa de modelos para alguns dos registros.

É um truque muito simples, e costumo usar o Google sempre que preciso, então por que não colocá-lo aqui, talvez alguém ache útil:

<% if lookup_context.exists?(dynamic_template_name, ["path1/path2"], true) %>
<%= render dynamic_template_name %>
<% end %>

O trueargumento significa que estou procurando uma parcial.

Se dynamic_template_namefor “template1”, o código acima corresponde a este template:
path1/path2/_template1.html.erb(ou haml, slim, etc) em qualquer um de seus lugares onde o Rails normalmente irá procurar por templates.

Aqui está a referência completa para a função: http://apidock.com/rails/ActionView/LookupContext/ViewPaths/exists%3F

Isso me ajudou: http://stackoverflow.com/questions/3559419/is-there-any-rails-function-to-check-if-a-partial-exists

Observação : é claro que não estou defendendo o uso consistente de modelos que correspondem aos registros do banco de dados. É uma má ideia. Mas para coisas muito simples (tenho cerca de 6 registros nos meus e sei que raramente mudam), é bom usar este truque.