2009-08-06 7 views
1

Y a-t-il un moyen d'obtenir la route reconnue par des rails ayant un chemin? "Recogn" renvoie uniquement le hachage avec: controller,: action et: id (si disponible) et tout autre attribut url. Mais je voudrais obtenir l'objet route (dans le ActionController :: Routing :: Routes.routes) que les rails compare le chemin.Rails: route reconnue

Merci d'avance.

+0

Pourriez-vous fournir un peu plus d'informations sur la raison pour laquelle vous voulez faire cela? Il pourrait y avoir une solution différente à votre problème. –

+0

Qu'essayez-vous exactement de faire? Et, ce que weppos a dit. –

+0

Désolé pour le retard dans ma réponse, j'étais hors de la ville. En ce qui concerne la raison pour laquelle je veux obtenir l'objet route plutôt que le contrôleur et l'action pour la requête en cours, c'est que je veux générer la navigation en utilisant des routes. Si je connais l'objet actuel, je pourrais étendre les classes RouteSet et Route en ajoutant des méthodes telles que les ancêtres, parent, enfant, childrent pour la Route et obtenir les éléments de navigation comme les fils d'Ariane, les onglets, ... sais, je vais essayer de fournir quelques cas d'utilisation. – Dharam

Répondre

0

Vous pouvez utiliser les parties pertinentes de #recognize_path pour obtenir à l'objet Route:

req = @request_class.new(env) 
@router.recognize(req) { |route, matches, params| ... } 

Cela vous donnera un objet Journey::Route.

Il est intéressant de considérer si c'est la meilleure façon de le faire, si tout ce que vous voulez faire est de générer des chapelures. Je ne suis pas sûr que vous serez en mesure d'inspecter l'objet route pour obtenir suffisamment d'informations pour générer automatiquement des fil d'Ariane.