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