Freqüentemente, você acaba em uma situação em que tenta renderizar duas vezes sem saber em seu aplicativo Rails.
Por exemplo :
def some_action
redirect_to action: "somewhere"
render action: "there" # raises DoubleRenderError
end
Uma ação pode conter uma única renderização ou um único redirecionamento para. Fazer as duas coisas conforme mostrado no código acima gera a Exceção de renderização dupla (porque ‘redirecionar para’ inturn faz outra solicitação para renderizar a visualização ‘índice’.
Evite ‘redirect_to’ e renderize em uma única ação.
Se você estiver usando ambos com base em alguma condição.
def some_action
redirect_to (action: "somewhere") if something.nil?
render action: "there"
end
O código acima executa ambas as instruções e gera a exceção de renderização dupla quando ‘algo é nulo’ Portanto, para evitar o uso, use a função acima como
def some_action
redirect_to (action: "somewhere") and return if something.nil?
render action: "there"
end
Usar o retorno no código acima leva ao retorno dessa função e, portanto, evita ‘Erro de renderização dupla’ em seu aplicativo.
É isso aí. Tenha cuidado com a maneira como você renderiza suas visualizações em sua ação do controlador.
Feliz Hacking!
Fonte: Documentação Rails em ActionController :: Classe Base