0
當我通過google創建新帳戶時,電子郵件會存儲在我的用戶記錄中。當我通過twitter創建用戶時,電子郵件列是空白的。如果用戶將其當前的Twitter帳戶與Google關聯,我想更新該條目。在將提供商與omniauth關聯時更新用戶記錄
def self.create_from_hash!(hash) create! do |user| user.name = hash['user_info']['name'] user.email = hash['user_info']['email'] end end
在會話控制器:
def create auth = request.env['rack.auth'] unless @auth = Authorization.find_from_hash(auth) @auth = Authorization.create_from_hash(auth, current_user) end self.current_user = @auth.user flash[:notice] = "Welcome, #{current_user.name}." redirect_to '/' end
,並在授權模式:
在我的用戶模型def self.create_from_hash(hash, user = nil) user ||= User.create_from_hash!(hash) Authorization.create(:user => user, :uid => hash['uid'], :provider => hash['provider']) end
我怎麼可以更新列時我加入授權方法?
這足以只做@ user.email.blank?檢查,你爲什麼要做@ user.email.nil? – 2011-05-28 11:45:03