Wie man eine Route zum Stammverzeichnis hinzufügt

In meinem Plugin habe ich eine Route wie folgt in config/routes.rb:

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

Und ich kann

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

aufrufen und den öffentlichen Schlüssel erhalten, wie gewünscht. :tada:

Da ich nicht bei einem funktionierenden System aufhören möchte (und Benutzer werden dies fast sicher kopieren/einfügen, also machen 9 zusätzliche Zeichen nichts aus), möchte ich in der Lage sein, folgendes auszuführen:

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

Ich habe mir eine Reihe anderer Plugins angesehen, und es scheint, als ob etwas wie dies funktionieren sollte:

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

Das funktioniert überhaupt nicht. Ein paar Dinge, die ich versucht habe (ich habe eine Menge Dinge ausprobiert und hätte wirklich keine Zeit für dieses spezielle Windrad verschwenden sollen), sahen so aus, als würden sie die Route korrekt abfangen, aber dann müsste ich … etwas … tun, um ihm zu sagen, dass es nach diesem Controller in pfaffmanager/get_pub_key_by_name suchen soll.

Hast du versucht, diesem Link zu folgen

und den at:-Parameter entsprechend anzupassen?

2 „Gefällt mir“

Danke, Rafael! Das hat mir weitergeholfen.

Im Grunde habe ich mein Plugin einfach unter / gemountet und dann /pfaffmanager den Routen in ....routes.draw vorangestellt. Wie bei den meisten dieser Probleme ist die Lösung offensichtlich, sobald man sie findet.

2 „Gefällt mir“

Die andere Möglichkeit ist folgende:

1 „Gefällt mir“