Nel mio plugin, ho una rotta definita in config/routes.rb come questa:
Pfaffmanager::Engine.routes.draw do
get "/ssh-key/:hostname" => "serverkeys#get_pub_key_by_hostname", constraints: { end
E riesco a eseguire
curl https://www.pfaffmanager.com/pfaffmanager/ssh-key/test.myforum.us
e ottenere la chiave pubblica come desiderato. ![]()
Non volendo lasciar perdere (e gli utenti quasi certamente copieranno e incolleranno questo, quindi 9 caratteri in più non significano nulla), vorrei poter eseguire
curl https://www.pfaffmanager.com/ssh-key/test.myforum.us
Ho esaminato molti altri plugin e sembra che qualcosa del genere dovrebbe funzionare:
Discourse::Application.routes.prepend do
get "/ssh-key/:hostname" => "serverkeys#get_pub_key_by_hostname", constraints: { hostname: /[^\/]+/ }
end
Questo non funziona affatto. Alcune cose che ho provato (ne ho provate molte e davvero non avrei dovuto perdere tempo su questa particolare girandola) sembravano intercettare correttamente la rotta, ma poi avrei dovuto fare… qualcosa… per indicare che deve cercare quel controller in pfaffmanager/get_pub_key_by_name.