Mongo ids führt zu unheimlich URLs
Klingen mag wie eine triviale Frage, aber es ist ziemlich wichtig für Verbraucher vor apps
Was ist der einfachste Weg und die meisten skalierbaren Weg, um die Karte unheimlich mongo-id auf eine id, die freundlich ist?
xx.com/posts/4d371056183b5e09b20001f9
ZU
xx.com/posts/a
M
- Sie können sich auf diesen Beitrag bei Google-Gruppe: groups.google.com/group/mongoid/browse_thread/thread/..., obwohl es nicht wirklich Ihre Frage zu beantworten, es gibt Ihnen einige alternativen um das problem zu lösen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Definieren eine freundliche eindeutiges Feld (wie eine Schnecke) auf Ihre Sammlung, index, auf Ihr Modell, definieren
to_param
für die Rücksendung:Dann in Ihrem Finder, finden von slug anstatt ID:
Damit werden Sie auch Behandlung von Nacktschnecken als Ihre effektive PK für die Zwecke der Ressource Interaktion, und Sie sind viel hübscher.
_id
Feld? Wenn es geht, einzigartig zu sein und indiziert, es gibt keine Notwendigkeit, beides zu haben._id
ist nicht begrenzt auf dieObjectId
geben.Können Sie erstellen, die einen zusammengesetzten Schlüssel in mongoid zu ersetzen, um die Standard-id mit der Taste makro:
Wenn Sie nicht wie diese Art und Weise zu tun, müssen Sie diese gem: https://github.com/hakanensari/mongoid-slug
Leider der Schlüssel makro wurde entfernt von mongo. Für benutzerdefinierte ids
Benutzer müssen nun überschreiben Sie die _id Feld.
name
wenn das Objekt instanziiert wird (Band.new) werden Sie am Ende mit einem null -_id
. Einstellung der_id
danach nicht funktioniert.Hier ist ein tolles Schmuckstück, ich habe mit erfolgreich Antwort auf diese problem: Mongoid-Slug
https://github.com/digitalplaywright/mongoid-slug.
Es bietet eine schöne Schnittstelle für das hinzufügen dieser Funktion auf mehrere Modelle. Wenn Sie lieber Rollen Sie Ihre eigenen, zumindest zu prüfen, Ihre Umsetzung für einige Ideen. Wenn Sie diesen Weg gehen, schauen Sie in die Stringex gem, https://github.com/rsl/stringex, und acts_as_url Bibliothek. Das wird Ihnen helfen, die schöne Bindestrich-zwischen-url-slugs.