Filtro before_render do Rails

Recentemente, tive a necessidade de me conectar com o ciclo de vida da página Rails. Especificamente – depois que a ação foi executada, mas antes da exibição renderizada.

Meu caso de uso específico exigia que eu puxasse as mensagens de erro do Devise do recurso e as adicionasse ao flash antes dos modelos de visualização renderizados. Veja como eu fiz.

# application_controller.rb
class ApplicationController < ActionController::Base

def render(*args)
add_devise_errors_to_flash
if devise_controller?
super # <- view render happens here
end

def add_devise_errors_to_flash
if resource.errors.present?
# add errors to flash
end
end

end

Aproveitar!