Rails 3,浏览器后退功能

3
我正在尝试在 iPhone 网页应用上实现返回功能。
我查看了所有关于该问题的帖子,但没有一个能解决我的具体情况。
这是我的操作顺序:
主页 -> 事件页面(点击人名) -> 个人页面
目前,我在事件页面和个人页面都有 <%= link_to 'Back', :back %>。使用此类实现时,当我从个人页面点击返回时,它按预期将我带回到事件页面。但是,当我从事件页面点击返回时,它返回到个人页面,因为那是我来自的页面。(而浏览器返回按钮的预期功能是带我回到主页)。
有人可以帮助我在 Rails 中实现这个功能吗?

1
请确保您已启用JavaScript。您能否发布页面的HTML代码。它应该是这样的:javascript:history.back()。 - Zepplock
1
感谢Zepplock。当我将<%= link_to "Back", :back %>更改为<%= link_to "Back", 'javascript:history.back()' %>时,所有事情都运行良好。我没想到这会这么简单。<%= link_to "Back", :back %>的HTML并不是带有JavaScript的那种,而是URL本身。我在Chrome浏览器上启用了JavaScript,但我不确定为什么会出现这种情况。 - zacropetricopus
1个回答

11

在Rails的link_to方法文档中,你可以阅读到:

(...) 使用 :back 来链接到引用页面 - 如果没有引用页面,则会使用JavaScript返回链接。

你也可以在url_for 方法的代码中看到这一点:

when :back
  controller.request.env["HTTP_REFERER"] || 'javascript:history.back()'
else

在您的情况下,事件页的引荐者是个人页面。 就像@Zepplock指出的那样,您可能想硬编码javascript:history.back()这与点击后退按钮相同

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接