Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如果不作为参数调用,request.env[";omniauth.auth";]将返回nil_Ruby On Rails_Ruby_Request_Omniauth_Omniauth Facebook - Fatal编程技术网

Ruby on rails 如果不作为参数调用,request.env[";omniauth.auth";]将返回nil

Ruby on rails 如果不作为参数调用,request.env[";omniauth.auth";]将返回nil,ruby-on-rails,ruby,request,omniauth,omniauth-facebook,Ruby On Rails,Ruby,Request,Omniauth,Omniauth Facebook,我正在尝试用facebook打一个简单的omniauth电话。如果我像这样捕获请求散列,一切都正常: def facebook user = User.from_facebook(request.env["omniauth.auth"]) if user.persisted? ... else ... end end 但是如果我试图将请求散列保存在变量中,则得到request=nil。e、 g: def facebook omni

我正在尝试用facebook打一个简单的omniauth电话。如果我像这样捕获请求散列,一切都正常:

def facebook
    user = User.from_facebook(request.env["omniauth.auth"])
    if user.persisted?
      ...
    else
      ...
    end
  end
但是如果我试图将请求散列保存在变量中,则得到request=nil。e、 g:

def facebook
  omni_request = request.env["omniauth.auth"]
  user = User.from_facebook(omni_request)
  if user.persisted?
    ...
  else
    ...
  end
end
上面的例子失败了,因为请求是nil,我不能对nil的东西调用env


有人知道为什么在facebook类方法的
之外调用时,请求会为零吗

第三行应该是:user=user.from_facebook(omni_请求)

所以,问题是我在实际代码中调用了变量请求,这会覆盖请求。。。技术上你是对的,所以我会给你。