“ Back”浏览器功能是否可以从 Rails 的“ Back”链接中调用?
使用
<%= link_to 'Back', :back %>
这是在 RDoc 给你中指定的
这会生成一些 Javascript 来向后导航。
在 Rails 3及更早版本中:
link_to_function "Back", "history.back()"
在 Rails 4中,这个方法已经被删除了。
可以使用 link_to("Hello", :back)生成 <a href="javascript:history.back()">Hello</a>。
link_to("Hello", :back)
<a href="javascript:history.back()">Hello</a>
吸毒
看起来就像在浏览器里点击后退按钮一样。当您返回时,所有输入的表单数据仍然存在。
在 Rails 4.2中,我用这个工作:
<a href="javascript:history.back()">Refine Search</a>
这是我从 @ cpm 的回答中偷来的,只不过 link_to("Refine Search", :back)没有完成我想要的工作,而粘贴生成的代码 <a href="javascript:history.back()">Refine Search</a>完美地完成了这项工作。
link_to("Refine Search", :back)
这将工作类似于浏览器后退按钮尝试这一点
<%= link_to 'Back', 'javascript:history.go(-1);' %>
请注意来自用户 向右的 此评论!正如他所指出的,符号为 :back的 link_to并不总是生成一个“真正的”后退事件,就好像用户点击了浏览器的后退按钮一样。它也可以是加载当前视图的操作的重新提交。
:back
link_to
Rails 4.2.6的文档表示 link_to和 :back的符号:
使用 :back符号而不是选项散列将生成指向 Referrer (如果没有,将使用一个 JavaScript 反向链接来代替 Referrer 存在)。
如果你像我一样不希望 link_to "cancel", :back的行为,你可以实现一个帮助器方法,要么链接到记录索引路径或显示路径。(即 teams_path或 team_path(@team)
link_to "cancel", :back
teams_path
team_path(@team)
module CancelFormButtonHelper def cancel_button(record) index_path = record.class.to_s.pluralize.downcase + "_path" path = record.persisted? ? record : eval(index_path) link_to "Cancel", path end end
然后可以在表单中作为 <%= cancel_button @team %>使用,例如。
<%= cancel_button @team %>
可以使用 js 函数 window.history. back ()
= link_to 'Back', onclick: "window.history.back();"
这是工作在 Rails 5.1以及 Turbolinks。
link_to 'Back', 'javascript:history.back()'