Schienen: überprüfen der Eindeutigkeit von zwei Spalten (zusammen)
Ich habe eine Release
Modell mit medium
und country
Spalten (unter anderem). Es sollte nicht releases
identischen medium
/country
Kombinationen.
Wie würde ich dies Schreibe, wie eine rails-Validierung?
Möglich, Duplikat der Rails: Validierung der Eindeutigkeit der mehrere Spalten
InformationsquelleAutor Jackson Cunningham | 2015-12-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine Einzigartigkeit Validierung mit
scope
option.Auch, sollten Sie einen eindeutigen index, um die DB zu verhindern, dass neue Aufzeichnungen von der Weitergabe der Validierungen bei gleichzeitig geprüft, bevor Sie geschrieben:
unique
wie es ist nicht erkannt. Für diesen Teil habe ich die Antwort weiter unten.Ja, sorry, die Validierung Schlüssel sollte
uniqueness
, nichtunique
. Finden Sie in der verlinkten Dokumentation. Die Festsetzung der Antwort.Hm, gut, danke :), mich Zu wiederholen - dass der index bringt die Lösung auf die nächste Ebene, und nicht nur wie andere "Codierung" Lösungen, die ich gelaufen, vor der Suche nach dieser Antwort. +1 für das
InformationsquelleAutor tompave
Alle oben genannten Antworten fehlen, so überprüfen Sie die Einzigartigkeit von mehreren Parametern in einem Modell. Der code unten beabsichtigt zu sagen, wie man mehrere Attribute in einem Bereich.
Überprüft er die Einzigartigkeit der
country
in allen Zeilen mit den Wertenmedium
undanother_medium
.Hinweis: vergessen Sie nicht, fügen Sie einen index auf die Spalte oben, dies gewährleistet die schnelle abrufen und fügt eine DB-level-Validierung für eindeutige Datensätze.
InformationsquelleAutor Aamir
Können Sie ein
:scope
parameter auf Ihre validator wie diesen:Sehen die Dokumentation für einige weitere Beispiele.
InformationsquelleAutor K M Rakibul Islam