Turbo Streams: HTTP
Este curso trata de Turbo Streams enviados como respostas HTTP. Um ramo format.turbo_stream num bloco respond_to comum responde à requisição que o disparou, escolhido pelo header Accept do cliente. As aulas leem controllers e templates reais de uma aplicação Rails. Um formulário de comentários devolve cinco ações numa só resposta. Um loop acrescenta uma página de comentários e troca o controle de carregar mais. Outras aulas tratam de render turbo_stream na hora, códigos de status, templates de uma linha e ramos format.html de reserva.
O que você vai aprender
- ✓Como o header Accept escolhe entre o ramo format.turbo_stream e o format.html
- ✓Enviar várias ações de stream com alvo numa única resposta HTTP
- ✓Fazer loop num template .turbo_stream.erb para acrescentar uma página de comentários
- ✓Montar uma ação na hora com render turbo_stream: e um status HTTP
- ✓Usar remove com dom_id e refresh com method: :morph via HTTP
- ✓Juntar cada ramo de stream a um ramo format.html completo
O mesmo respond_to, um segundo formato
Todo broadcast do curso anterior disparou sem requisição nenhuma: um envio do servidor, sem ninguém pedir. O turbo stream deste curso responde a uma pergunta. O envio de um formulário comum, por HTTP comum, recebe a resposta do format.turbo_stream, um ramo do mesmo bloco respond_to que o Rails…
Ler a aula completa grátis →Currículo
7 aulasO mesmo respond_to, um segundo formato
Como o format.turbo_stream num bloco respond_to responde a uma requisição, com o header Accept escolhendo o ramo.
Múltiplas ações, uma resposta
Um único POST de comentário devolve cinco ações de stream com alvo, rodadas no mesmo quadro de animação.
Fazendo loop numa resposta de stream
Um loop no .turbo_stream.erb acrescenta uma página de comentários e troca o controle de carregar mais.
render turbo_stream: em linha, e códigos de status reais
Como montar uma ação na hora com render turbo_stream:, mandar status 422 ou responder só com head :forbidden.
remove, dom_id, e refresh via HTTP
Dois templates de uma linha: remove com dom_id para apagar uma imagem e refresh com morph na troca de idioma.
Melhoria progressiva: dois formatos, uma action
Cada controller junta format.turbo_stream a um ramo format.html completo, embora a interface ainda dependa de JavaScript.
Juntando tudo: dois cursos, um mecanismo
Revisão mostrando que broadcasts e respostas HTTP levam as mesmas ações turbo-stream, e por que não há desafio de código.