2010-05-01 3 views
1

페이지의 캐시 부분을 조각화하고 싶습니다. 설정/생산에서조각 캐싱

def index 

    read_fragment("saved_area") 

    end 

:

config.cache_store = :file_store, File.join(RAILS_ROOT, 'tmp', 'cache') 

파일은 TMP/캐시 디렉토리에 생성 된 뷰에
나는

컨트롤러에서
<% cache("saved_area") do %> 
. 
<% end -%> 

있습니다. 그러나 캐시가 사용 중인지 (그리고 없는지) 로그에 줄이 있어야한다고 가정하므로 요청에 캐시가 사용되는지 확실하지 않습니다.

답변

2

레일스는 생산 모드에서 로그 수준을 :info으로 설정하므로 캐시 히트 및 누락을 기록하지 않습니다. 로그에

Cached fragment hit: views/test (0.2ms) 
Cached fragment miss: views/test (1.8ms) 

: 당신이 당신의 config/enviroments/production.rb

config.log_level = :debug 

을 설정하면 다음과 같은 메시지를 참조하십시오. 두 번째 해결 방법은이 환경에서 :debug이 기본 로그 수준이기 때문에 캐싱을 수행하도록 개발 환경을 구성하는 것입니다. 다음을 설정하여 수행 할 수 있습니다.

config.action_controller.perform_caching = true 
config.cache_store = :file_store, File.join(RAILS_ROOT, 'tmp', 'cache') 

앱을 프로덕션으로 가져 가면 기록하지 않으므로 이렇게하는 것이 가장 좋은 방법입니다.

진술 : 컨트롤러에 read_fragment으로 전화하지 않아도됩니다. cache 도우미 메서드를 사용하면됩니다.