¿Es posible en Rails comprobar si ya se ha emitido un redireccionamiento o renderizado?
Ruby 2.0.2, Rails 4.0.3, Conjuro 0.8.5
Traté de emitir una redirección en mi código, solo para recibir el mensaje de error de que ya se había emitido una redirección o representación. Si ese es el caso, estoy feliz de volver. Sin embargo, si se llama al método por cualquier otro motivo, me gustaría comprobar si se ha emitido un redireccionamiento o renderizado y, si no, emitirlo. El código es autenticación basada en hechicería.
En el controlador de la aplicación, tengo:
def not_authenticated
redirect_to login_url # , :alert => "First log in to view this page."
end
Esto termina comprobando current_user, de la siguiente manera:
def current_user
@current_user ||= @view.current_user unless @view.blank?
begin
@current_user ||= Associate.find(session[:user_id]) unless session[:user_id].blank?
rescue ActiveRecord::RecordNotFound => e
return
end
current_user = @current_user
end
En el rescate, me gustaría determinar si ya se produjo una redirección o renderización, para poder redirigir_a login_url si no. Esto significaría, por supuesto, que se llamó desde un método diferente, que es. Gracias.