Comment puis-je accéder aux itinéraires nommés dans une balayeuse de rails?
-
16-11-2019 - |
Question
J'ai une balayeuse qui réchauffe le cache en ouvrant des URL dans des processus fourchus.Il est suffisamment facile de coder l'hôte de ces URL, mais je veux que cela change de manière dynamique, sur la base de l'environnement.
Je sais que je peux définir des variables globales / environnementales pour cela, mais j'aimerais vraiment utiliser des itinéraires nommés.Y a-t-il un moyen de faire cela?
(Je devrais clarifier que j'ai essayé simplement de mettre les itinéraires nommés là-bas, mais ils ne résolvent pas au moment de l'exécution.)
La solution
The closest I found is:
Rails.application.routes.named_routes.get(:user).defaults
Which retrieves:
{:action=>"show", :controller=>"users"}
But you should merge it with your params:
Rails.application.routes.named_routes.get(:user).defaults.merge({:id => 1})
Result:
{:action=>"show", :controller=>"users", :id=>1}
Edit:
Simply add
include Rails.application.routes.url_helpers
to your class
Autres conseils
I fixed this in the current Rails 3.2 beta: