Если пользователь отказывается сообщать свою электронную почту, запрос его в любом случае не сделает его счастливым ...
Лучшее, что нужно сделать, - это уважать это и создать миграцию, чтобы убрать требование в электронной почте.field.
change_column :users, :email, :string, null: true
не забудьте также об удаленном индексе и foreign_keys
Чтобы идентифицировать своего пользователя, я предлагаю вам связать с ним модель Identity
, которая будет обрабатывать возвращаемые поля: provider_id, provider_name, name, username
и т. Д. Таким образом, вы можете легко добавить больше социальных идентификаторов.