Вы немного озадачены тем, для чего это регулярное выражение.Давайте посмотрим на это:
validates :email, :presence => true,
:format => { :with => email_regex },
:uniqueness => { :case_sensitive => false }
Где используется регулярное выражение?Он используется для :format
, поэтому регулярное выражение используется только для того, чтобы увидеть, похож ли адрес входящей электронной почты на действительный адрес электронной почты и не имеет ничего общего с уникальностью.Параметр :uniqueness
для validates
указывает, что случай не должен учитываться при обеспечении уникальности адресов электронной почты.Таким образом, у вас не может быть двух пользователей, адреса электронной почты которых отличаются только регистром.
Ничто в показанном коде не говорит о том, как сравниваются адреса электронной почты, когда вы пытаетесь подписать кого-то, и именно здесьУ вас проблемы.Вам нужно обновить метод класса User.authenticate
, чтобы выполнить поиск адреса электронной почты без учета регистра.