2013-01-04 86 views
0

我使用meta_search gem.I有網址類似這樣與搜索參數管理項目索引頁。保留編輯頁面的meta_search參數?

admin/projects?utf8=✓&search%5Bid_equals%5D=&search%5Btitle_contains%5D=&search%5Bstage_in%5D=completed 

然後用戶選擇一個項目,URL將被該

admin/projects/a--15/edit?page=1 

當用戶更新此表,搜索參數都將丟失。

我如何可以保留這些parameters.I與會話意味着或meta_search有一些方法來解決這一問題?

回答

0

首先,創建一個過濾器,用於火災可能希望獲得搜索參數的每一個動作:

ProjectsController < ApplicationController 
    before_filter :save_searches 

    def save_searches 
    @addons = '' 
    [:page, :id_equals,:title_contains,:stage_in].each do |k| 
     if params[k] 
     pval = params[k].is_a?(Array) ? params[k].join(',') : params[k] 
     @addons << k.to_s + "=" + pval + "&" 
     end 
    end 
    @addons.chop! 
    end 

現在,當你的行動火災,@addons將被設置,然後你可以這樣做:

<%= link_to 'Edit' , edit_path(@project.id) + @addons.length > 0 ? "?" + @addons : '' %> 

這麼說,我敢打賭,這是一個黑客有點的,並有一個更清潔的方式來做到這一點。但這對我很有用。

的:翻頁鍵使它如此,如果你有分頁運行和使用:頁面參數去跟蹤當前頁面,您的分頁應該記住爲好。

另外請注意,在你的事件讓您的PARAMS陣列(即與選擇的結果是:多=>真),這是處理。