2011-01-06 55 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助手能夠接受參數。