📎 Webclip
Usando responders no Rails
O texto apresenta o Responder do Rails como uma forma de abstrair como controllers respondem a requisições. Em vez de repetir blocos respond_to em várias actions, respond_with deixa o controller mais conciso e usa o estado do recurso para decidir a resposta.
Fichamento#
- O Responder foi introduzido no Rails 3.0 para abstrair como controllers respondem às requisições.
- Um controller gerado por scaffold costuma repetir a mesma estrutura
respond_toem várias actions. respond_withusaActionController::Respondere torna o controller mais curto e simples.- Antes de usar o Responder, o controller precisa declarar quais formatos aceita com
respond_to. - O Responder considera o estado do recurso e o formato solicitado para decidir entre comportamento de navegação ou de API.
- A gem
respondersreduz ainda mais a duplicação ao lidar com flash messages de forma automática. - Para usar a gem, basta adicioná-la ao
Gemfile, executarbundle installe definirrespond_toerespondersnoApplicationController. - Com a gem, o controller pode remover as definições manuais de flash e continuar usando
respond_with. - A gem oferece suporte a flash messages internacionalizadas e também permite personalização por controller e action.
- Quando o fluxo foge do padrão, o texto recomenda criar um responder próprio em vez de voltar ao
respond_tono controller. - O exemplo de comentário cria um responder específico para a action
create, com lógica própria para HTML. - Um responder personalizado pode herdar de
ActionController::Responder, incluirResponders::FlashRespondere delegarteflashao controller. - O controller usa a opção
:responderemrespond_withpara aplicar o responder específico da action. - O texto encerra dizendo que a confirmação do comportamento deve vir de testes de integração, verificando a presença da mensagem conforme o estado do objeto.
