ruby-on-rails - rails : Controlling browser back button

标签 ruby-on-rails ruby ruby-on-rails-3 view

我有一个用户索引操作,可以根据参数将用户引导到不同的页面。目前,当用户传递搜索参数并且我呈现自定义 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

这是我对流程的理解:

  1. 用户点击用户链接
  2. 默认路由到用户索引
  3. 操作加载数据并呈现模板
  4. 模板显示
  5. 用户输入搜索参数
  6. html 表单使搜索词进入 critera,而 critera 进入 params
  7. 默认从浏览器提交输入
  8. 由于没有自定义路线,因此将点提交给相同的操作?
  9. 由于 params 具有条件,因此会呈现搜索结果/模板
  10. 点击用户,进入用户编辑
  11. 点击浏览器上的后退按钮,浏览器知道页面列表是用户索引的最后一站,因为搜索结果不是单独的 URL 并且 HTML 是用 Javascript 呈现的?
  12. 需要让浏览器以某种方式重定向到搜索结果模板

谢谢!

最佳答案

尝试<%= link_to 'Back', 'javascript:history.go(-1);' %> 。它将为您提供与浏览器后退按钮完全相同的功能。

关于ruby-on-rails - rails : Controlling browser back button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20337646/

相关文章:

asp.net - 适合使用 SQL Server 开发基于浏览器的数据库应用程序(报告)的平台?

ruby-on-rails - 如何使用ruby在 "<a>"标签中找到href元素值

ruby-on-rails - 显示中has_many 的rails_admin 表?

ruby-on-rails - Rails 批量赋值和 Backbone.js

css - 在 Doorkeeper gem View 中覆盖 CSS

sql - 在 Rails 中对部分字符串字段的 SQL 查询结果进行排序的最简单方法是什么?

ruby - Carrierwave + MiniMagick - 如何将动画 GIF 压缩到第一帧?

ruby - 在类中使用括号方法时不能省略 `self`

jquery - 如何以嵌套形式使用 jQuery FIle Upload?

ruby-on-rails - 从 Haml 输出中自动删除所有换行符