Ruby on Rails中的“返回”浏览器操作
“后退”浏览器function是否可以从Rails的“后退”链接调用?
在Rails 3和更早的版本中:
link_to_function "Back", "history.back()"
在Rails 4中,这个方法已经被删除了。 见安德烈亚斯的评论。
使用
<%= link_to 'Back', :back %>
这在RDoc中有详细说明
这会产生一些JavaScript向后导航。 我刚刚testing过,它的工作原理。
在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("Hello", :back)
生成<a href="javascript:history.back()">Hello</a>
。
这将和浏览器后退button一样工作
<%= link_to 'Back', 'javascript:history.go(-1);' %>
注意来自用户的这个评论 ! 正如他所指出的, link_to
和symbol :back
并不总是产生一个“真实的”back事件,就好像用户点击了浏览器的Backbutton一样。 它也可以是加载当前视图的操作的重新提交。
Rails 4.2.6的文档中提到了link_to
和:back
符号:
使用
:back
符号而不是选项散列会生成一个链接到引用链接(如果不存在,将使用JavaScript反向链接来代替引用链接)。
运用
link_to_function "Back", "history.back()"
似乎完全像在浏览器中点击后退button。 所有input的表单数据仍然存在,当你回来。
如果你喜欢我不想要link_to "cancel", :back
的行为,那么你可以实现一个辅助方法,它或者链接到logging索引path或者显示path。 (即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 %>
。
你可以使用js函数window.history.back()
= link_to 'Back', onclick: "window.history.back();"
这与Rails 5.1以及Turbolinks一起工作。
link_to 'Back', 'javascript:history.back()'