2012-09-20 46 views
0

通常,索引頁面有用於過濾,頁面,排序的選項。在顯示新的編輯頁面之後,您可能希望返回索引頁面,其中的選項與您看到的選項相同。在Rails中記錄索引參數的最好方法是什麼?

爲此,我在會話中保存索引的參數。

class ApplicationController < ActionController::Base 

    helper_method :index_with_params 
    after_filter :save_index_params, :only => [:index] 

    def save_index_params 
    session[self.class.to_s] = params 
    end 

    def index_with_params overrider={} 
    object = self.kind_of?(ApplicationController) ? self : controller 
    h = session[object.class.to_s] || {"action" => :index} 
    h["only_path"] = true 
    url_for(h.merge(overrider)); 
    end 

end 

我曾經使用ActiveRecord進行會話存儲。現在我想使用cookie。所以會議應該很輕鬆。

你如何處理這種情況?

謝謝。

山姆

回答

1

將展示後,新的,編輯頁面,你可能要爲你看到了我們回到 索引頁使用相同的選項。

如果您在查詢字符串中初始傳遞您的過濾選項即ie。 example.com/widgets?order_by=price,然後當用戶使用瀏覽器「返回」按鈕導航回到索引時,過濾選項將被保留。

如果你真的要當用戶以後類型example.com/widgets,那麼你就需要堅持的選項某處要保留的選項,一般在session對象。該cookie商店可以容納4KB,所以應該沒問題,除非你有很多選擇。如果您需要更多空間或性能成爲問題,請查看其他會話商店,例如Redis商店。

相關問題