Se você já sentiu aquela pontada de dúvida ao criar uma rota manual como get '/post_comentarios/:id', ou se viu perdido tentando passar IDs escondidos em formulários para manter a relação entre dois objetos, este artigo é para você.
No Rails, nós não lutamos contra a estrutura; nós usamos a Convenção sobre Configuração para ganhar velocidade. Organizar rotas com Nested Controllers (Controllers Aninhados) não é um capricho estético ou "perfumaria". É sobre manter o contexto e a segurança da sua aplicação.
O que é e por que você deveria se importar?
Controllers aninhados operam dentro do contexto de outro recurso. Em vez de um /artigos/1 genérico, temos /categorias/5/artigos/1.
Se um comentário não existe sem um post, ou uma aula não existe sem um curso, por que a sua rota deveria permitir que eles existissem isolados?
A vantagem real dessa abordagem:
Segurança Nativa: Você filtra os dados sempre partindo do ID do pai. Isso evita que um usuário mal-intencionado acesse um recurso que não pertence àquele contexto apenas trocando o ID na URL.
Código RESTful: Você mantém as ações padrão (
index,show,new). Não precisa inventar nomes de métodos comolista_por_categoria. Oindexjá nasce sabendo o que listar.Clareza de Produto: A URL se torna uma trilha de pão para o usuário e para o desenvolvedor.
Ainda não há comentários. Seja o primeiro a comentar!