gpt4 book ai didi

ruby-on-rails - 如何重定向倒数第二页

转载 作者:行者123 更新时间:2023-12-02 23:54:53 24 4
gpt4 key购买 nike

在我的应用程序中,我需要保存 URL 的状态,其中我需要存储倒数第二个请求的请求路径。我知道 request.reffer 返回最后一页 URL 但我需要倒数第二个页面 URL,如何在不修改 routes 的情况下实现此目的有任何参数吗?有可能实现吗?

场景:

假设我现在有一些身份验证页面可供查看。

  1. 用户无需身份验证即可访问产品页面。
  2. 当用户想要购买产品时,他需要登录或注册。
  3. 通过登录,我可以实现重定向回产品路径
  4. 但签名页面上提供了注册链接,因此 request.reffer 将在注册后返回登录路径。

如何重定向到正确的(产品)页面?

欢迎大家提出好的建议!

最佳答案

如果我正确理解您的问题:您需要一个链接来引导用户访问之前查看过的页面,而不是之前查看过的页面。您可以简单地使用一些 JavaScript 来实现这一点:

<%= link_to "Double Back", "javascript:history.go(-2);" %>

它的作用是使用浏览器的历史记录来及时跳转两个 URL。相当于点击浏览器上的后退按钮两次。

我最近解决了一个类似的问题,页面有时会在提交表单后定向到自身。发生这种情况时,:back 按钮将变得毫无用处,因为用户访问的最后一个页面是同一页面。我使用以下代码解决了这个问题:

<%= link_to "Back", "javascript: if (document.referrer == '#{request.original_url}'){history.go(-2);} else {history.go(-1);}" %>

这表示“如果上一页是同一页面,则跳回两页,否则跳回上一页”

更新:

再次阅读您的问题,听起来您可能正在尝试在 Rails 中获取上一页以用于重定向?如果是这种情况,上面的解决方案将不起作用,但您可以使用 Flash 存储上一页并将其转发到下一页(其中它将是上一页),然后访问它并将其用于重定向。 Rails 指南中对 Flash 进行了解释:http://guides.rubyonrails.org/action_controller_overview.html#the-flash

我想解决方案应该是这样的:

first controller action
flash[:previous_page] = "#{request.original_url}"
end

second controller action
redirect_to flash[:previous_page]
end

关于ruby-on-rails - 如何重定向倒数第二页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39411664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com