我最近将一个应用程序升级到Rails 5,然后将所有对redirect_to :back
的引用更新为redirect_back
。
这似乎在生产中表现得如预期,在本地运行应用程序时,它会重定向到页面上呈现的最后一个图像的URL。虽然这不是一个真正的问题,但我想知道是否有人遇到过类似的问题并且有任何解决方案吗?
答案 0 :(得分:0)
安装插入"无参考开关"在Chrome浏览器中,redirect_back方法将按预期实现。
当我使用方法redirect_back时遇到了同样的问题,我在源代码中找到了原因
#source code in rails
def redirect_back(fallback_location:, **args)
if referer = request.headers["Referer"]
redirect_to referer, **args
else
redirect_to fallback_location, **args
end
end
根据源代码,如果request.header [" Referer"]存在,无论fallback_location的值如何,页面都将返回到最后一个图像。
redirect_back(fallback_location: root_path)
redirect_back(fallback_location: users_path)
我使用chrome浏览器,上面的代码会返回一些结果,你可以调试它。我发现一个名为"没有引用开关的镀铬插件"并启用它,该插件可以使http头中的引用无效,因此redirect_back方法将按照我们的预期实现。