복붙노트

[RUBY-ON-RAILS] 쿼리 문자열 매개 변수를 사용하여 액션 캐싱 레일

RUBY-ON-RAILS

쿼리 문자열 매개 변수를 사용하여 액션 캐싱 레일

내 행동이 쿼리 문자열 매개 변수가 어디에 어떻게 레일 내 REST 컨트롤러를 캐시 할 수 있습니다?

Example: GET /products/all.xml?max_price=200

고마워!

해결법

  1. ==============================

    1.모든 쿼리 매개 변수를 기반으로 작업을, 캐시 (또는 거의 그들 모두에 대해 말하기를)하려는 경우, 당신은 할 수 있습니다 :

    모든 쿼리 매개 변수를 기반으로 작업을, 캐시 (또는 거의 그들 모두에 대해 말하기를)하려는 경우, 당신은 할 수 있습니다 :

    caches_action :my_action, :cache_path => Proc.new { |c| c.params }
    

    또는, 어쩌면 당신은 당신이 방금 분석에 사용 (하지만 기록 당신이있는 거 가져 오는 아무런 관계가 없다고)하는 모든하지만 일부 PARAMS를 원하는 :

    caches_action :my_action, :cache_path => Proc.new { |c| c.params.delete_if { |k,v| k.starts_with?('utm_') } }
    
  2. ==============================

    2.나는 같은 것을 할 캐시 키와 요청 URL을 사용하려면 :

    나는 같은 것을 할 캐시 키와 요청 URL을 사용하려면 :

    caches_action :index, :cache_path => Proc.new {|c| c.request.url }
    
  3. ==============================

    3.이 경우 캐시 조각을 사용해야합니다 :

    이 경우 캐시 조각을 사용해야합니다 :

    컨트롤러에서 :

    cache(params[:max_price], :expires_in => 10.minute) do
      # get the result
    end
    
  4. from https://stackoverflow.com/questions/1988658/rails-action-caching-with-querystring-parameters by cc-by-sa and MIT license