2012-09-20 5 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를 사용했습니다. 이제 쿠키를 사용하고 싶습니다. 따라서 세션은 가벼워 야합니다.

어떻게 대처합니까?

감사합니다.

답변

1

보여 드릴 거예요 후, 새로운, 편집 페이지, 당신은 당신이 본 것과 같은 옵션을 다시 인덱스 페이지로 이동 할 수 있습니다.

쿼리 문자열에 필터링 옵션을 처음으로 전달한 경우 즉, example.com/widgets?order_by=price이면 사용자가 브라우저 "뒤로"버튼을 사용하여 색인으로 다시 이동하면 필터링 옵션이 보존됩니다.

당신은 정말 example.com/widgets에서 사용자 나중에 유형, 당신은 옵션 을 지속 할 필요가있을 때 옵션은 일반적으로 session 객체, 보존하십시오. 쿠키 저장소는 최대 4KB까지 수용 할 수 있으므로 많은 옵션이 없으면 정상이어야합니다. 더 많은 공간이 필요하거나 성능이 문제가되는 경우 Redis Store와 같은 다른 세션 저장소를 살펴보십시오.

관련 문제