0
我在这里发现了一些类似的主题,但没有人为我工作。 我有这样的用户型号:Rails + Devise + OmniAuth:Twitter身份验证和跳过电子邮件
def email_required?
super && provider.blank?
end
def self.find_for_twitter_oauth(access_token, signed_in_resource=nil)
data = access_token.extra.raw_info
if user = User.where(:provider => 'twitter', :uid => data.id).first
user
else # Create a user with a stub password.
user = User.new(:first_name => data.first_name,
:last_name => data.last_name,
:password => Devise.friendly_token[0,20],
:provider => 'twitter',
:uid => data.id,
:terms_of_use => true)
user.save(:validation => false)
end
return user if user
end
但一切的时候,我尝试通过Twitter进行身份验证,我得到
SQLite3::ConstraintException: users.email may not be NULL: INSERT INTO "users"...
我花了解决这一问题的几个小时我真的很绝望......我会感激每一个帮助。
我想用更干净的方式来做到这一点。 – user984621
将验证添加到您的模式。您可以通过迁移来更改列属性,但在我看来,这是一个更糟糕的主意。 – user2641326