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