1

我的会话控制器

       class SessionsController < ApplicationController
         def create
         user = User.from_omniauth(env["omniauth.auth"])

         session[:user_id] = user.id
         redirect_to root_url
        end

       def destroy
           session[:user_id] = nil
           redirect_to root_url
        end
            end

我的用户.rb

      class User < ActiveRecord::Base

       def self.from_omniauth(auth)
             where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user|
           user.provider = auth.provider
           user.uid = auth.uid
           user.name = auth.info.name
           user.oauth_token = auth.credentials.token
           user.oauth_expires_at = Time.at(auth.credentials.expires_at)
           user.save!
     end
  end

结束 谁能告诉我错误的原因我在 SO 上搜索相同但无法找到相关的解决方案
结束

4

1 回答 1

0

我解决了这个问题

self.from_omniauth 尝试创建新用户,所以我收到验证错误电子邮件不能留空或用户名不能留空,所以评论您的验证并尝试。

在您的验证中使用模型 "on"=>"create" 、 "on"=>"update" 中的 Rails 模型场景

于 2014-03-28T10:06:08.053 回答