El uso de la gema OmniAuth, me veo obligado a definir una sola devolución de llamada ruta para las conexiones exitosas, independientemente del proveedor:Rieles: Procesar y salga inmediatamente
def auth_callback
auth_data = request.env['omniauth.auth']
if auth_data.has_key('something')
process_one(auth_data)
else
process_two(auth_data)
end
# No view is available here
end
def process_one
# do something then render view for process_one
return
end
def process_two
# do something then render view for process_two
return
end
¿Cómo puedo evitar que el controlador de regresar a la auth_callback método y tratar de mostrar la vista correspondiente (que no existe)? El tratamiento debe considerarse como completo una vez que el proceso_un o proceso_dos métodos han regresado.
¿Tiene rutas de código en sus métodos 'process_one' y' process_two' que no devuelve nada? Si es así puedes intentar renderizar: nothing => true u otra cosa allí –
Podría usar "if (x) render: process_one else render: process_two" en auth_callback, pero es bastante antinatural: prefiero confiar en process_one y process_two para representar sus propios puntos de vista. –
Quise decir si escribes en algún lugar 'return' simple (o si tienes un código como' return if (! Something) '). Los raíles intentarán mostrar la acción predeterminada vista –