如何'回'2级?

时间:2011-01-06 01:34:16

标签: ruby-on-rails

从我的应用程序的列表视图中,我可以查看记录列表或深入查看并编辑/更新记录。更新后,我想直接回到列表视图,绕过几个中间页面 - 但我不只是想link_to(:action => list) - 涉及分页。我想回到我来自的确切“列表”页面。什么是最好的方式?通过页码将某个隐藏的arg传递给某个地方?有没有一种优雅的方法来实现这一目标?

2 个答案:

答案 0 :(得分:8)

我只是把这个放在那里,并附上免责声明可能有安全考虑或现有的宝石。

在编辑操作中,您可以将上一页存储在会话中。然后在您的更新操作中,重定向到它。

class MyController < ApplicationController

  def edit
    session[:prev_url] = request.referer
  end

  def update
    redirect_to session[:prev_url]
  end

end

答案 1 :(得分:2)

作为使用会话的替代方法,您可以使用隐藏的表单字段通过操作来携带引用者。

class MyController < ApplicationController

  def edit
    @prev_url = request.referer
  end

  def update
    redirect_to params[:prev_url]
  end

end

使用hidden_field表单

f.hidden_field :prev_url, :value => @prev_url

如果您不想随身携带整个引用网址,您也可以使用页面参数执行相同操作,并将参数附加到update操作中的网址。我还希望Rails的url助手接受参数。