Dans mon plugin, j’ai une route définie ainsi dans config/routes.rb :
Pfaffmanager::Engine.routes.draw do
get "/ssh-key/:hostname" => "serverkeys#get_pub_key_by_hostname", constraints: { end
Et je peux exécuter :
curl https://www.pfaffmanager.com/pfaffmanager/ssh-key/test.myforum.us
et obtenir la clé publique comme je le souhaite. ![]()
Ne voulant pas laisser les choses en l’état (et les utilisateurs copieront presque certainement cela, donc 9 caractères supplémentaires ne signifient rien), je souhaite pouvoir exécuter :
curl https://www.pfaffmanager.com/ssh-key/test.myforum.us
J’ai examiné de nombreux autres plugins, et il semble que quelque chose comme ceci devrait fonctionner :
Discourse::Application.routes.prepend do
get "/ssh-key/:hostname" => "serverkeys#get_pub_key_by_hostname", constraints: { hostname: /[^\/]+/ }
end
Cela ne fonctionne pas du tout. Plusieurs tentatives que j’ai faites (j’ai essayé beaucoup de choses et je n’aurais vraiment pas dû perdre de temps sur ce moulin à vent particulier) semblaient bien capturer la route, mais ensuite il me faudrait faire… quelque chose… pour lui indiquer de chercher ce contrôleur dans pfaffmanager/get_pub_key_by_name.