Ruby on Rails: Verwenden slug anstelle von id auf Ressourcen-Routen
So, ich bin auf der Suche nach einer Lösung, die mir helfen, um die folgenden mit Schienen Ressource:
/admin/articles/:slug/edit
im Gegensatz zu
/admin/articles/:id/edit
Ich bin auf der Suche nach Schienen Ressourcen-Routen und nicht die anderen Arten von Routen.
Wollte nur wissen, ob es möglich war. Wenn ja, wie?
- Ich denke, das ist eine Kopie von stackoverflow.com/questions/482636/...
- Betrachten Sie einen Edelstein wie friendly_id wenn Sie den Bau einer Produktions-site, oder zumindest überprüfen Sie die readme-Datei, um eine Vorstellung von der Grenzfälle. github.com/norman/friendly_id
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Klemme:
param: :slug
Ihrelink_to article.name, article
, zum Beispiel, generiert eine link zu einer nacktschnecke, und dass slug wird erkannt werden? Entweder lautet die Antwort Nein oder ich mache etwas anderes falsch 🙂/articles/my-great-article
), müssen Sie die controller behandeln die slug param, z.B.@article = Article.find_by!(slug: params[:slug])
Den
:id
parameter im routing ist einfach ein Platzhalter und kann alles sein, von einer numerischen Kennung an eine nacktschnecke.Müssen Sie nur passieren den richtigen Wert
und Holen Sie die Artikel verwenden Sie die entsprechende Methode
Wenn Sie es bevorzugen, können Sie auch außer Kraft setzen, die
to_param
für dieArticle
Modell zurückzukehren, die Schnecke, so dass Sie verwenden können,automatisch und der Schnecke zugewiesen werden, die
:id
parameter.