243 votes

Comment puis-je savoir le tracé actuel dans les Rails ?

J’ai besoin de connaître l’itinéraire en cours dans un filtre dans les Rails. Comment puis-je savoir ce que c’est ?

J’ai fais les ressources REST et ne voir aucune voie nommée.

332voto

IAmNaN Points 2713

Si vous essayez de cas particulier quelque chose dans une vue, vous pouvez utiliser current_page comme dans :

.. .ou avec un itinéraire nommé...

214voto

Swanand Points 6576

Pour en savoir d’URI :

Pour découvrir la route c'est-à-dire contrôleur, l’action et params :

21voto

Lucas Renan Points 1191

Vous pouvez le faire

Cela fonctionne pour moi en rails 3.1.0.rc4

11voto

KinOfCain Points 111

Dans rails 3, vous pouvez accéder à la Crémaillère::Mount::RouteSet de l'objet via les Rails.application.les routes de l'objet, puis d'appeler reconnaître directement

route, match, params = Rails.application.routes.set.recognize(controller.request)

que devient la première (la meilleure) de match, le bloc suivant forment des boucles sur les itinéraires possibles:

Rails.application.routes.set.recognize(controller.request) do |r, m, p|
  ... do something here ...
end

une fois que vous avez de la route, vous pouvez obtenir le nom de l'itinéraire par la route.nom. Si vous avez besoin pour obtenir le nom de la route pour une URL donnée, non pas à la demande actuelle, alors vous aurez besoin de se moquer d'un faux objet de demande de transmettre à crémaillère, découvrez ActionController::Routage::Itinéraires.recognize_path pour voir comment ils le font.

4voto

Aaron Rustad Points 1417

Je supposerai que vous voulez dire l’URI :

Selon votre commentaire ci-dessous, si vous avez besoin du nom du contrôleur, vous pouvez simplement faire ceci :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X