6
votes

Obtenez le nom du chemin actuel dans les rails

J'aimerais pouvoir obtenir le nom de l'itinéraire actuel dans une demande de Ruby sur des rails. J'ai trouvé des moyens pour que je puisse accéder au contrôleur et à l'action de la demande, mais j'aimerais accéder à une chaîne ou à un symbole du nom.

Par exemple, si j'ai un utilisateurs ressource;

  • Si je vais à / utilisateurs / 1, j'aimerais pouvoir obtenir users_path
  • Si je vais à / utilisateurs / 1 / Modifier J'aimerais pouvoir obtenir edit_user_path

    Je veux simplement récupérer le nom de l'itinéraire actuel sur une demande donnée.


3 commentaires

Je ne sais pas que je comprends la question, mais si vous tapez des itinéraires Rake dans votre terminal, cela vous donnera tous vos chemins.


Je sais que routes râte répertoriera les itinéraires pour moi, je souhaite obtenir le nom de l'itinéraire lors d'une seule demande.


Avez-vous découvert comment faire cela?


4 Réponses :


1
votes

Vous pouvez utiliser les méthodes suivantes pour obtenir l'URL actuelle dans votre action, mais aucune d'entre elles ne vous donnera le nom de la route comme users_path xxx


0 commentaires

2
votes

Le code suivant vous le donnera. XXX

Notez qu'il y a quelques exceptions à exceptions qui peuvent être lancées dans ActionDispatch :: Routing :: Routeset (qui est ce qui est renvoyé de rails. Application.Routes ) Alors faites attention à ceux-ci. Vous pouvez trouver la mise en œuvre de la méthode ici .


1 commentaires

Dans Rails 4, il semble que je dois utiliser demande.original_url à la place. Lorsque je fais la réponse, c'est {: action => "nouveau",: contrôleur => "Utilisateurs"} , quand je recherche new_user_path .



-1
votes

Vous pouvez utiliser le actuel_page? code> méthode pour y parvenir.

current_page?(user_path(@user))
current_page?(edit_user_path(@user))


0 commentaires

0
votes

J'ai dû utiliser demande.original_full_fullpath (rails 5.2)


0 commentaires