Как сделать столбец уникальным и проиндексировать его при переходе на Ruby on Rails?

hmmm, поэтому вычисления могут пойти не так, вот лучшая версия (только ради нее)

first, second, third, fourth=1,2,3,4# you can make strings if you wish :)

quarterMap = {}
quarterMap.update(dict(zip((1,2,3),(first,)*3)))
quarterMap.update(dict(zip((4,5,6),(second,)*3)))
quarterMap.update(dict(zip((7,8,9),(third,)*3)))
quarterMap.update(dict(zip((10,11,12),(fourth,)*3)))

print quarterMap[6]
381
задан Peter Mortensen 27 December 2016 в 17:25
поделиться

1 ответ

Краткий ответ:

add_index :table_name, :column_name, unique: true

Чтобы индексировать несколько столбцов вместе, вы передаете массив имен столбцов вместо одного столбца name,

add_index :table_name, [:column_name_a, :column_name_b], unique: true

Для более тонкого управления существует метод « execute », который выполняет прямой SQL.

Вот и все!

Если вы делаете это вместо обычных проверок старой модели, просто проверьте, как это работает. Я не уверен, что сообщение об ошибке пользователю будет таким же приятным. Вы всегда можете сделать и то, и другое.

658
ответ дан 22 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: