Hoje durante um Code Session aqui no Campus Code apareceu uma dúvida no mínimo interessante: Onde colocar as partial views de forma que elas possam ser usadas em qualquer lugar no projeto?

Opção Padrão

A resposta padrão seria na pasta app/views/shared, como indicado em vários lugares, inclusive no Agile Web Development no capítulo Action View. Porém, neste caso devemos usar assim:

<%= render partial: "shared/minha_partial" %>

Onde, minha_partial estará em: app/views/shared/_minha_partial.html.erb.

Usando o framework ao seu favor

O lookup das views no Rails 4.x (que é a versão estável enquanto escrevo esse post) é feito na pasta com mesmo nome do controller, exemplo: app/views/customers/ para o controller CustomersController ou na pasta application, app/views/application para o controller ApplicationController, este último normalmente herdado por todos os controllers da nossa aplicação.

Sendo assim, colocando _minha_partial.html.erb dentro da pasta app/views/application/ nos permitiria usar nossa partial assim:

<%= render 'minha_partial' %>

Muito mais simples, não?

Considerações

Apesar de ser mais simples, não podemos esquecer que estamos nos fazendo valer de uma característica do Rails e esta pode ser alterada na próxima versão, sendo assim considere isso antes de sair mudando suas views de lugar.

E você, como faz nos seus projetos?

Referências

Logo Campus Code

Gostou desse conteúdo? Você pode aprender muito mais programando ao lado do Alan Batista e de outros desenvolvedores nos treinamentos do Campus Code. Nossos programas incluem os conteúdos mais pedidos pelo mercado como Ruby on Rails, Git, TDD, práticas ágeis, HTML 5, CSS e SQL.

Comentários