À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 true
argumento significa que estou procurando uma parcial.
Se dynamic_template_name
for “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.