首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SessionsController#create中的Rails 4切片未定义nil:NilClass的方法‘NoMethodError’

SessionsController#create中的Rails 4切片未定义nil:NilClass的方法‘NoMethodError’
EN

Stack Overflow用户
提问于 2013-10-24 20:41:51
回答 1查看 884关注 0票数 1

我的会话控制器

代码语言:javascript
复制
       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

我的user.rb

代码语言:javascript
复制
      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

end有人可以告诉我错误的原因吗?我在S.O上搜索相同的错误,但找不到相关的解决方案

结束

EN

回答 1

Stack Overflow用户

发布于 2014-03-28 18:06:08

我修复了这个问题

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

在验证中使用模型中的rails模型方案"on"=>"create“,"on"=>"update”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19566261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档