У меня есть базовое приложение Ruby, которое я создаю с помощью Sinatra, Datamapper и аутентификации пользователя с использованием OAuth. Когда я получаю данные от службы Oauth, я сохраняю запись нового пользователя в базе данных sqlite3.
Чего я не знаю, как сделать, так это как проверить, что запись пользователя еще не существует в таблице базы данных пользователей. Я могу использовать уникальный идентификатор пользователя (uid), чтобы проверить, сохранен ли уже этот uid, но я просто не знаю, где это сделать.
У меня есть 2 класса и маршрут /callback. Класс User — это модель базы данных, а класс Authentication имеет различные методы подключения к OAuth и маршрут /callback, который будет иметь вызывается метод Authentication.save.
Должен ли я проверять существующую запись в методе Authentication.save и возвращать логическое значение или что-то еще? Создать новый метод в Authentication, похожий на Authentication.exists? (и как это будет выглядеть?) Или я должен проверять маршрут /callback?
Я прошу прощения, если это не было на 100% ясно, мне трудно описать свою проблему, и я абсолютный новичок в Ruby...