我有一个用户索引操作,可以根据参数将用户引导到不同的页面。目前,当用户传递搜索参数并且我呈现自定义 View 模板时,当用户单击用户时,它会转到他们的用户编辑页面。我希望浏览器上的后退按钮返回到自定义 View (如果用户来自自定义 View )。然而,无论如何,它都会返回到用户索引。
我应该怎么做才能使浏览器后退按钮返回到用户来自的最后一个页面?
我的 Controller 代码是:
def index
@criteria = params[:criteria]
respond_to do |format|
format.js {
unless @criteria.blank? || @criteria.length < 3
@results = fire(@criteria)
render :template =>'admin/users/search_user', :object => @results, :locals => { :autocomplete => true, :criteria => @criteria }
else
@users = User.paginate :page => params[:page], :order => "users.created_at desc"
render :template =>'admin/users/users', :object => @users, :locals => { :autocomplete => true, :criteria => @criteria }
end
}
format.html {
@users = User.paginate :page => params[:page], :order => "users.created_at desc"
}
end
end
这是我对流程的理解:
- 用户点击用户链接
- 默认路由到用户索引
- 操作加载数据并呈现模板
- 模板显示
- 用户输入搜索参数
- html 表单使搜索词进入 critera,而 critera 进入 params
- 默认从浏览器提交输入
- 由于没有自定义路线,因此将点提交给相同的操作?
- 由于 params 具有条件,因此会呈现搜索结果/模板
- 点击用户,进入用户编辑
- 点击浏览器上的后退按钮,浏览器知道页面列表是用户索引的最后一站,因为搜索结果不是单独的 URL 并且 HTML 是用 Javascript 呈现的?
- 需要让浏览器以某种方式重定向到搜索结果模板
谢谢!
最佳答案
尝试<%= link_to 'Back', 'javascript:history.go(-1);' %>
。它将为您提供与浏览器后退按钮完全相同的功能。
关于ruby-on-rails - rails : Controlling browser back button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20337646/