Вы можете использовать проверку уникальности ActiveRecord. Проверки используются, чтобы гарантировать, что в вашу базу данных сохраняются только действительные данные. Проверки на уровне модели - лучший способ убедиться, что в вашу базу данных сохраняются только действительные данные. Они не зависят от базы данных, не могут быть обойдены конечными пользователями и удобны для тестирования и обслуживания. Rails делает их простыми в использовании, предоставляет встроенные помощники для общих нужд и позволяет создавать собственные методы проверки.
Уникальность
class Account < ApplicationRecord
validates :email, uniqueness: true
end
Это не создает ограничение уникальности в базе данных, поэтому может случиться, что два разных подключения к базе данных создадут две записи с одинаковым значением для столбца, который вы намереваетесь быть уникальным. Чтобы избежать этого, вы должны создать уникальный индекс для этого столбца в вашей базе данных.
Когда использовать ограничения базы данных? Ограничения базы данных и / или хранимые процедуры делают механизмы проверки зависимыми от базы данных иможет сделать тестирование и обслуживание более сложным. Однако, если ваша база данных используется другими приложениями, возможно, будет полезно использовать некоторые ограничения на уровне базы данных. Кроме того, проверки на уровне базы данных могут безопасно обрабатывать некоторые вещи (например, уникальность в часто используемых таблицах), которые могут быть трудны для реализации в противном случае.
Подробнее о проверках ActiveRecord