O que é um partial?

Prévia grátis 2 min de leitura

O mesmo card, renderizado repetidas vezes

A página de roadmap, app/views/catalog/courses/index.html.erb, renderiza o mesmo card para todo curso: imagem, título, barra de progresso e selo, mudando só os dados. Escrever essa marcação à mão por curso duplicaria mais de vinte linhas em todo lugar onde um curso aparece. Este projeto a escreve uma vez e a reaproveita:

<%= render partial: "course_card", collection: group.courses, as: :course,
      cached: ->(course) { card_cache_key(course, @progress) },
      locals: { lvl: lvl, level_name: level_name,
                progress: @progress, lesson_counts: @lesson_counts } %>

Um partial é um arquivo de view feito para ser reusado

Essa linha renderiza app/views/catalog/courses/_course_card.html.erb, um template .html.erb como os dos dois últimos cursos, escrito uma vez e chamado onde a marcação se repete. Ela roda duas vezes no index.html.erb, uma para cursos com categoria e outra para os sem. Este projeto tem uns quarenta arquivos assim, do _navbar.html.erb e _footer.html.erb do layout ao _form_errors.html.erb, _course_card.html.erb, _sponsor_line.html.erb e uma dúzia de formulários de admin. Esse reaproveitamento é o motivo de o mecanismo existir.

Para onde este curso vai

  • A aula 2 cobre a regra de nomenclatura com underscore que todo arquivo partial segue.
  • A aula 3 cobre passar variáveis locais para dentro de um partial, como course: e lvl: acima.
  • A aula 4 lê três partials deste projeto.
  • A aula 5 cobre renderizar um partial que mora numa pasta diferente.
  • A aula 6 compara a forma abreviada de render com a explícita usada acima.
  • A aula 7 junta tudo e nomeia o que vem a seguir.
Aula 1 de 7 · grátis

Continue com a aula 2

A convenção de nomenclatura com underscore

Explica o underscore no nome do arquivo partial e como o Rails procura na pasta da view que chama.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...