Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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 Rails在登录重定向循环中设计Gem重定向_Ruby On Rails_Ruby_Gem - Fatal编程技术网

Ruby on rails Rails在登录重定向循环中设计Gem重定向

Ruby on rails Rails在登录重定向循环中设计Gem重定向,ruby-on-rails,ruby,gem,Ruby On Rails,Ruby,Gem,登录后,我很难重定向到用户的上一页 我曾尝试遵循,但当我实现此代码时,它建议: def after_sign_in_path_for(resource) sign_in_url = url_for(:action => 'new', :controlle

登录后,我很难重定向到用户的上一页

我曾尝试遵循,但当我实现此代码时,它建议:

def after_sign_in_path_for(resource)                                                                                                                      
  sign_in_url = url_for(:action => 'new', :controller => 'sessions', :only_path => false, :protocol => 'http')                                            
  if request.referer == sign_in_url                                                                                                                    
    super                                                                                                                                                 
  else                                                                                                                                                    
    request.referer || "/"                                                                                      
  end                                                                                                                                                     
end     
它总是重定向到根目录,而从不重定向到上一页

我发现了同样的问题,但其中的解决方案并不奏效

然后我想我会简化它,只需通过获取引用URL的路径将用户返回到上一个URL,因为我认为这可能会有所帮助,但是我得到了与此相同的错误:

def after_sign_in_path_for(resource)
  URI(request.referer).path
end
如果我简单地将静态路径放入:

def after_sign_in_path_for(resource)
  "/somepath"
end
那绝对行得通。我肯定我错过了一些明显的东西

看看这个答案:。 如链接中所述,request.referer返回HTTP头中设置的HTTP_referer值。此值可能丢失。

请查看是否有帮助: