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]
Краткий ответ:
add_index :table_name, :column_name, unique: true
Чтобы индексировать несколько столбцов вместе, вы передаете массив имен столбцов вместо одного столбца name,
add_index :table_name, [:column_name_a, :column_name_b], unique: true
Для более тонкого управления существует метод « execute
», который выполняет прямой SQL.
Вот и все!
Если вы делаете это вместо обычных проверок старой модели, просто проверьте, как это работает. Я не уверен, что сообщение об ошибке пользователю будет таким же приятным. Вы всегда можете сделать и то, и другое.