Ich habe Setup Friendly Id nach all den Anweisungen aus den Home page bereits sinnvoller URLs für Ähnliche Namen zu erzeugen.Freundlich id Verwendung mit verschiedenen Slug Werte- Rails 4
Kurz gesagt, ich habe die module
und slug
Spalt in meiner Platz Modell Tabelle hinzugefügt.
in meinem place.rb
extend FriendlyId
friendly_id :name, use: [:slugged, :finders, :history]
Ich lief auch Place.find_each(&:save)
.
nun der Wert von name
kann unterschiedlich sein, da es viele Orte mit gleichen names.So im Index Aktion ist, wenn ich die Show Aktion nennen, mit id
, erhält ich korrekte Ergebnisse aber Urls sieht schlecht aus, aber wenn i call show action mit friendly_id
, url ist auch hier schlecht mit seinem uniq token wie string angehängt und auch ich bekomme immer falsches ergebnis.
zum Beispiel. Für einen Datensatz mit name
Wert als Burwood können mehrere Einträge vorhanden sein too.However, gibt es zwei Probleme: -
- Meine Urls wie
www.mysite/sydney/burwood
stattwww.mysite/sydney/21
sein sollte, wenn ichid
verwende und nichtfriendly_id
(das sieht komisch aus - www.mysite/sydney/burwood-78894aa3-dea1-4915-b2f7-038182511005), wie man damit umgeht. ?? - Wenn i Id Verwendung nicht und
friendly_id
als URL-Parameter verwenden, für Ähnliche Standorte Wert Burwood, ich bin immer erste Datensatz erhalten, auch wenn ich für andere one.So in DB bin zu fragen,name
Wert vonburwood
mit zwei Datensätze sind meine slug Werte unterschiedlich -burwood
undburwood-78894aa3-dea1-4915-b2f7-038182511005
Also, wenn Gebrauch ID als uRL-Parameter, es funktioniert als ids sind uniq und Schnecken sind nicht berücksichtigt, aber ich will url mehr sinnvoll sein.
Wenn jedoch i friendly_id verwenden, URL sieht seltsam und auch einzigartiger Datensatz wird nicht abgeholt.
freundlicher
Ich kann dies erreichen, indem to_param verwenden, aber wie kann ich meine Urls recht machen .Ich möchte nicht meine Id in den URLs zeigen ... – Milind
Sie? kann eine 'guid'-Spalte hinzufügen und eine eindeutige ID mit' SecureRandom.hex (4) 'generieren, um eine zufällige eindeutige Zeichenfolge/ID zu erstellen. Die Länge ist das Doppelte des Wertes, also 8 Zeichen lang, wenn wir den Wert 4 verwenden. – codyeatworld
Ich kann ein Beispiel hinzufügen, wenn Sie möchten. – codyeatworld