簡體   English   中英

保留meta_search參數用於編輯頁面?

[英]keep meta_search parameters for edit page?

我正在使用meta_search gem。我有類似url的帶有搜索參數的管理項目索引頁面。

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

然后用戶選擇一個項目,URL將是這個

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

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

我該如何保留這些參數。我的意思是使用session或meta_search可以解決此問題?

首先,創建一個過濾器,該過濾器針對可能想要訪問搜索參數的每個操作觸發:

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 : '' %>

就是說,我願意打賭這有點像黑客,而且還有一種更清潔的方式來做到這一點。 但這對我有用。

使用:page鍵可以使您運行分頁並使用:page參數跟蹤當前頁面,也應記住您的分頁。

還要注意,如果您在參數中獲得了Array(即使用:multiple => true進行選擇的結果),則將對此進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM