Cómo agregar una ruta a la ruta raíz

En mi plugin, tengo una ruta definida así en config/routes.rb:

Pfaffmanager::Engine.routes.draw do
  get "/ssh-key/:hostname" => "serverkeys#get_pub_key_by_hostname", constraints: { end

Y puedo ejecutar

  curl https://www.pfaffmanager.com/pfaffmanager/ssh-key/test.myforum.us

y obtener la clave pública como deseo. :tada:

Pero, sin conformarme con dejar las cosas como están (y los usuarios casi con seguridad copiarán y pegarán esto, así que 9 caracteres extra no suponen nada), quiero poder ejecutar

  curl https://www.pfaffmanager.com/ssh-key/test.myforum.us

He revisado muchos otros plugins y parece que algo como esto debería funcionar:

Discourse::Application.routes.prepend do
  get "/ssh-key/:hostname" => "serverkeys#get_pub_key_by_hostname", constraints: { hostname: /[^\\/]+/ }
end

Esto no funciona en absoluto. He probado varias cosas (he intentado muchas y realmente no debería haber perdido tiempo en este molino de viento en particular) que parecían capturar correctamente la ruta, pero luego tendría que hacer… algo… para indicarle que busque ese controlador en pfaffmanager/get_pub_key_by_name.

¿Has probado siguiendo esto

y cambiando el parámetro at: en consecuencia?

¡Gracias, Rafael! Eso me ayudó a resolverlo.

Básicamente, solo monté mi plugin en / y luego añadí /pfaffmanager al principio de las rutas en ....routes.draw. Como ocurre con la mayoría de estos problemas, la respuesta es obvia una vez que la encuentro.

La otra forma de hacerlo es así: