Rails : rendre et quitter immédiatement

À l'aide de la omniauth gem, je suis obligé de définir un itinéraire unique de rappel pour réussir à bien des identifiants de connexion, quel que soit le fournisseur de :

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

Comment puis-je empêcher le contrôleur de retourner à la auth_callback méthode et de l'essayer pour afficher la vue correspondante (qui n'existe pas) ? Le traitement doit être considérée comme terminée une fois que l'process_one ou process_two méthodes sont de retour.

  • Avez-vous les chemins de code dans vos méthodes process_one et process_two qui ne renvoie rien? Si oui, vous pouvez essayer de rendre :rien=>vrai ou quelque chose d'autre là-bas
  • Je pourrais utiliser "si(x) rendu :process_one d'autre de rendu :process_two" dans auth_callback, mais c'est tout à fait anormal : je préfère compter sur process_one et process_two à rendre leurs propres points de vue.
  • Je voulait dire que si vous écrivez quelque part plaine return (ou code comme return if(!something)). Rails de pourrait essayer de rendre l'action par défaut de la vue
  • Problème similaire: stackoverflow.com/questions/5743534/redirect-to-return/...
InformationsquelleAutor manu_v | 2011-04-04