Я использую код Railcast episode, код находится в Github here.Ошибка при проверке подлинности при использовании omniauth + twitter + devise
К сожалению, я получаю ошибку: The change you wanted was rejected.
(Как ни странно, я несколько раз реализованы и никогда не случалось со мной раньше)
В журнале Heroku, я получаю:
2013-07-13T09:06:49.096663+00:00 app[web.1]: Completed 422 Unprocessable Entityin 83ms
2013-07-13T09:06:49.099178+00:00 app[web.1]:
2013-07-13T09:06:49.099178+00:00 app[web.1]: ActiveRecord::RecordInvalid (Validation failed: Email can't be blank):
2013-07-13T09:06:49.099178+00:00 app[web.1]: app/models/user.rb:14:in `from_omniauth'
2013-07-13T09:06:49.099178+00:00 app[web.1]:
2013-07-13T09:06:49.099178+00:00 app[web.1]:
2013-07-13T09:06:49.099178+00:00 app[web.1]: app/models/user.rb:20:in `block in from_omniauth'
2013-07-13T09:06:49.099178+00:00 app[web.1]: app/controllers/omniauth_callbacks_controller.rb:3:in `all'
Я считаю, что это ошибка проверки подлинности электронной почты, сделанная erro. Поскольку в моем методе from_omniauth
я не получаю электронное письмо.
def self.from_omniauth(auth)
where(auth.slice(:provider, :uid)).first_or_create do |user|
user.provider = auth.provider
user.uid = auth.uid
user.name = auth.info.nickname
user.image = auth.info.image
user.save!
end
end
Предотвращает ли отказ валидации user.save!
? Могу ли я использовать его позже в omniauth_callbacks?
сгенерированного Придумайте миграции добавляет не пустой и уникальный на колонке электронной почты, может быть, это так? –
Да, у меня это. Таким образом, это предотвратит «.save?» – cqcn1991
Но в одном из моих репозиториев olrder. Я также получил это 't.string: email,: null => false,: default =>" "' Он работал в то время. – cqcn1991