2011-01-06 58 views
5

从我的应用程序的列表视图中,我可以查看记录列表或向下钻取并编辑/更新记录。更新后,我想直接返回到列表视图,绕过几个中间页面 - 但我不只是想要link_to(:action => list) - 涉及分页。我想回到我来自的确切'名单'页面。最好的方法是什么?在页面编号的某处传递隐藏的参数?有没有一种优雅的方式来完成这一点?如何去'返回'2级?

回答

7

我只是要抛出这一个与免责声明,可能有安全考虑或现有的宝石。

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

class MyController < ApplicationController 

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

    def update 
    redirect_to session[:prev_url] 
    end 

end 
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助手能够接受参数。