Catch 401 error en Rails with Devise cuando el usuario tiene varias ventanas abiertas

El escenario es el siguiente: el usuario tiene 2 ventanas en las que está conectado. Se desconecta de una, permanece conectado en la otra, y luego en la última, activa alguna acción, por ejemplo, un formulario enviado.

Inicialmente, lo que ocurrió es que arrojó un error de token de autenticidad no válido. protect_from_forgery en ApplicationController para que esté with: :null_session para que en lugar de Exception arroje un 401.

¡Genial! Ahora, para el paso 2, en lugar de que el usuario solo vea una línea de texto que dice You need to sign in or sign up before continuing. , Me gustaría redirigirlo a la página de inicio de sesión.

Aquí es donde tengo problemas … He estado leyendo esta guía: http://agileleague.com/blog/rails-3-2-custom-error-pages-the-exceptions_app-and-testing-with -capybara / que dice que 401 errores no son atrapados por defecto por los Rails. La guía tiene dos líneas de código que la definirán y capturarán, y luego una línea de código en la ruta que hará que el enrutamiento funcione. Básicamente se ve así:

 # add to app/controllers/application_controller.rb class UnauthorizedException  :unauthorized) # add to routes (in my case this is what I've done for Devise) devise_scope :user do match '/401', to: 'users/sessions#new', type: "401", via: :get end 

Ahora soy muy verde en el manejo de excepciones, pero eso me parece incompleto … y tampoco está funcionando. Si navego a /401 en mi servidor local, me llevan a la página de inicio de sesión, por lo que el enrutamiento funciona. Pero si reproduzco el escenario descrito anteriormente que conduce al 401 en primer lugar, en lugar de ser redirigido, todavía me queda una página que tiene una sola línea de texto sin formato.

¿Ayuda?