我对redirect_to :back有问题。是的,它是引荐来源。

我经常得到异常(exception)



我意识到这是引荐来源不可用的结果。有没有一种方法,例如,可以在每次访问时访问的访问页面上都设置一个 session 变量,并且在HTTP_REFERER不可用时,利用此 session 变量重定向到?

最佳答案

您不太可能确实有 session 且没有推荐人。

没有设置引荐来源网址的情况并不少见,我通常会挽救这种期望:

def some_method
  redirect_to :back
rescue ActionController::RedirectBackError
  redirect_to root_path
end

如果您经常这样做(我认为这是个坏主意),则可以将其包装在Maran建议的其他方法中。

顺便说一句,我认为这是一个坏主意,因为这会使用户流变得模棱两可。仅在登录的情况下才有意义。

更新:正如一些人使用Rails 5指出的那样。
而是使用redirect_back,此方法还支持备用。然后,代码变为:
def some_method
  redirect_back fallback_location: root_path
end

10-07 20:48