Rails проверяет_uniqueness_of по нескольким столбцам без учета регистра
-
19-09-2019 - |
Вопрос
У меня есть модель, в которой есть два поля, которые я буду называть first_name и last_name, и я хочу убедиться, что их комбинация уникальна без учета регистра.Я прошел половину пути, используя это:
validates_uniqueness_of :first_name, :scope => :last_name
Проблема в том, что проверка уникальности, похоже, чувствительна к регистру, хотя документация говорит, что по умолчанию он должен быть нечувствителен к регистру.Итак, учитывая существующую запись:
{ :first_name => 'John', :last_name => 'Smith' }
Это будет разрешено:
{ :first_name => 'JOHN', :last_name => 'SMITH' }
А также любая дополнительная запись, в которой есть какое-либо изменение регистра в имени или фамилии.Почему эти записи разрешены?Как я могу обеспечить уникальность без учета регистра в обоих полях вместе?
Решение
Ты пробовал validates_uniqueness_of :first_name, :scope => :last_name, :case_sensitive => false
?
В в документации говорится это верно по умолчанию.
(Я думаю, что ссылка, которую вы дали, относится к какой-то устаревшей документации.IIRC, значение по умолчанию для этого действительно изменилось за последние пару лет.)