Я хочу проверить, не является ли адрес электронной почты, который использует новый человек при регистрации, является дубликатом существующей записи.Обнаружение дублирующих записей с использованием Sequel и PostgreSQL
Вот код:
post '/signup' do
email_address = params['email_address']
username = params['username']
password = params['password']
@duplicate = DB[:users].select(:email_address).where('email_address = ?', email_address)
if email_address = @duplicate
redirect "/?msg=Email address already in use. Try again"
return
end
end
Это блокирует все попытки, даже если адрес электронной почты не является дубликатом и перенаправляет с сообщением об ошибке.
Если я заменю @duplicate
на duplicate
(без знака @), то тот же результат, все попытки заблокированы. Если я использую ==
вместо =
, тогда повторяющиеся адреса электронной почты игнорируются и никакие попытки не блокируются.
Я знаю, что запрос:
DB[:users].select(:email_address).where('email_address = ?', email_address)
правильно, потому что я тестировал. Поэтому я предполагаю, что проблема заключается в построении предложения if.
Большое спасибо за ваши решения. Я считаю, что я могу обобщить здесь, в дополнение к решению моей непосредственной проблемы. – user1903663