2013-01-04 2 views
0

meta_search gem을 사용하고 있습니다. 검색 매개 변수가있는 관리 프로젝트 색인 페이지에 대한 URL이 있습니다. 편집 페이지의 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 

될 것입니다.

어떻게 이러한 매개 변수를 유지할 수 있습니까? 세션 또는 meta_search에서이를 해결할 수있는 방법이 있습니까?

답변

0

첫째, 검색 매개 변수에 액세스 할 수 있습니다 모든 조치를 발생시키는 필터를 만들 : 당신의 행동 화재, @addons이 설정 될 때

이제
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 

가, 다음이 작업을 수행 할 수 있습니다 : 말했다

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

, 나는이 다소 해킹이다 거라 확신하고 그것을 할 수있는 청소기 방법이있다. 그러나 이것은 나를 위해 일합니다.

페이지 키를 사용하면 페이지 매김을 실행하고 : 페이지 매개 변수를 사용하여 현재 페이지를 추적 할 수 있으므로 페이지 매김도 기억해야합니다.

매개 변수에 배열을 가져 오는 경우 (즉, multiple => true로 선택하면 결과가 처리됩니다).

관련 문제