2015-11-20 14 views
7

Wiem, że wiele podobnych pytań zadawano wcześniej, ale nie znalazłem dokładnie tego pytania (może po prostu nie jest to możliwe).Zmień kolumnę w Railsach, aby była unikalna.

Tak więc mam kolumna_A w mojej tabeli Rails (przy użyciu MySQL). Ostatnio mieliśmy potrzebę wymuszenia unikalności w tej kolumnie.

Czy można zmienić tę kolumnę, aby była wyjątkowa?

Jedyne inne rozwiązanie, które wymyśliłem, to stworzyć tymczasową unikatową kolumnę i przetasować wszystko dookoła. Który byłby bólem.

Dzięki!

+1

Nie wiem, dlaczego nie po prostu użyć validates_uniqueness_of: Column_A w twój model? –

+1

'change_column: table_name,: column_name,: string, unique: true' –

+0

@PadmanabanGokula Czy możesz wyjaśnić różnicę między' validates_uniqueness' i 'unique'? Zakładam, że mogę to zrobić z migracją? –

Odpowiedz

5

Prosty proces dwuetapowy:

1: Tworzenie migracja

change_column :table_name, :column_name, :string, unique: true 

2: Dodawanie sprawdzania poprawności w modelu

validates_uniqueness_of :column_name 
Powiązane problemy