Ich möchte automatisch generierte Hashes anstelle von automatisch inkrementierten Ganzzahlen in meinen ActiveRecords als Primärschlüssel verwenden. Dies wirft zwei Fragen auf:
Grüße, Mateusz
Es ist kein Duplikat Ihrer Frage, aber ich denke, Sie wollen das Gleiche tun:
Jedem Benutzer einen eindeutigen Namen zuweisen 100 Zeichen Hash in Ruby on Rails
Wenn Sie das möchten, weil Sie die ID nicht in der Web-URL anzeigen möchten. Sie können ein Juwel wie Ссылка
verwendenEr erstellt einen reversiblen Hash von Ihrer Datenbank-ID, so dass der Hash nicht in der Datenbank gespeichert werden muss.
Verwenden Sie es in Ihren Modellen to_param
Methode.
Und entschlüsseln Sie den Hash, bevor Sie den Datensatz aus der Datenbank finden.
%Vor%Es ist vielleicht nicht genau das, wonach du gefragt hast. Aber ich hatte ein ähnliches Problem, wo ich einen Hash anstelle der ID in der URL verwenden wollte. Meine Lösung folgt
Quelle: Railcast # 63 Modellname in URL - zeigt, wie die Methode to_param
verwendet wirdBei der Verwendung von Oracle hatte ich den Fall, dass ich die ID selbst erstellen wollte (und keine Sequenz verwenden), und dies in posten ich gebe die details wie ich das gemacht habe. Kurz gesagt, der Code:
%Vor% Während diese Lösung spezifisch für Oracle-enhanced ist, gehe ich davon aus, dass innerhalb der anderen Adapter die gleiche Methode überschrieben werden kann ( next_sequence_value
).
Tags und Links ruby-on-rails activerecord