2012-03-23 20 views
0

我有一個應用程序與關聯,並將分頁的頁面。如何實現反向鏈接到來自哪個頁面

來自主對象「cat_list」的索引頁顯示指向關聯「data_lists」的鏈接。索引頁也已分頁與 「will_paginate」

  1. 我秀例如頁= 3 「/ cat_lists?頁= 3」
  2. 我點擊的 「data_lists」 的鏈接,例如「/ cat_lists/8984/data_lists「

此索引頁面顯示包含Edit,Destroy和New鏈接的data_lists列表。 現在回到cat_lists索引頁的反向鏈接「/ cat_lists」

實現這些功能的最佳實踐是什麼,Back Link現在是從哪裏來的頁面?

回答

5

我通常記錄在會話歷史記錄,然後通過redirect_to back(沒有冒號)稱之爲

def index 
    ... do your stuff ... 
    record_history 
end 

protected 

    def record_history 
    session[:history] ||= [] 
    session[:history].push request.url 
    session[:history] = session[:history].last(10) # limit the size to 10 
    end 

    def back 
    session[:history].pop 
    end 

請注意,這僅適用於GET請求。

2

如果我理解你正確link_to('Back', :back)是你想要的。

+0

不,後面的選項不記得?page = 3的值 – romus 2012-03-23 16:11:21

+0

我同意,如果只是得到最後一次請求變更的鏈接':back'就是你想要的。請注意,當沒有'request.referrer'時,':back'鏈接會崩潰 – 2012-03-23 17:49:38

0

我也使用mosch的方法。

link_to('Back', :back)只使用瀏覽器的「後退」功能。管理歷史記錄服務器端可爲您提供更多控制權(例如,如果您來自Google搜索,請猜測發生的情況:返回)。 管理歷史記錄服務器端讓您可以隱藏將用戶從您的頁面移開的鏈接。此外,您可以讓用戶瀏覽多個步驟 - 即通過下拉菜單。

相關問題