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!