Die kurze Antwort für alte Versionen von Rails (siehe andere Antworten für Rails 4+):
add_index :table_name, :column_name, unique: true
Um mehrere Spalten gemeinsam zu indizieren, übergeben Sie ein Array von Spaltennamen anstelle eines einzelnen Spaltennamens,
add_index :table_name, [:column_name_a, :column_name_b], unique: true
Wenn Sie "index name... is too long" erhalten, können Sie Folgendes hinzufügen name: "whatever"
zur add_index-Methode hinzufügen, um den Namen kürzer zu machen.
Für eine feinkörnige Kontrolle gibt es eine " execute
"Methode, die direktes SQL ausführt.
Das war's!
Wenn Sie dies als Ersatz für reguläre alte Modellvalidierungen verwenden, prüfen Sie, wie es funktioniert. Die Fehlermeldung an den Benutzer wird ohne Validierungen auf Modellebene wahrscheinlich nicht so schön sein. Sie können immer beides tun.