如何实现Back Link到来自的页面

时间:2012-03-23 13:37:36

标签: ruby-on-rails-3 will-paginate

我有一个带有关联的应用程序,并会对页面进行分页。

主对象“cat_list”的索引页面显示了指向“data_lists”关联的链接。索引页面也与“will_paginate”

分页
  1. 我展示了例如page = 3“/ cat_lists?page = 3”
  2. 点击“data_lists”的链接,例如“/ cat_lists / 8984 / data_lists”
  3. 此索引页面显示包含Edit,Destroy和New链接的data_lists列表。 并且cat_lists索引页面的后向链接现在为“/ cat_lists”

    实现这些功能的最佳做法是什么,Back Link现在是来自哪个页面?

3 个答案:

答案 0 :(得分:5)

我通常在会话中记录历史记录,然后通过redirect_to back(无冒号)

来调用它
def index
  ... do your stuff ...
  record_history
end

protected

  def record_history
    session[:history] ||= []
    session[:history].push request.url
    session[:history] = session[:history].last(10) # limit the size to 10
  end

  def back
    session[:history].pop
  end

请注意,这仅适用于GET请求。

答案 1 :(得分:2)

如果我理解正确link_to('Back', :back)就是你想要的。

答案 2 :(得分:0)

我也使用mosch的方法。

link_to('Back', :back)仅使用浏览器的“后退”功能。管理历史服务器端可以让您获得更多控制权(例如,如果您来自谷歌搜索,请猜测发生了什么:返回)。 管理历史服务器端使您可以隐藏将用户从页面上移除的链接。此外,您可以让用户浏览多个步骤 - 即通过下拉菜单。