Rails.cache.delete('site_search_form')
이 작동하지 않는 것 같습니다. 이것이 가능한가? 감사.
Rails.cache.delete('site_search_form')
이 작동하지 않는 것 같습니다. 이것이 가능한가? 감사.
캐시 조각 항목은 Rails.cache를 사용하여 액세스하는 것과 약간 다른 키로 생성됩니다.
대신 사용 expire_fragment
(당신이 컨트롤러에 보낼 수) : http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html#M000438
이것은 나를 위해 작동하지 않습니다. 이것이 올바르게 작동하지 않는다면 Rails.cache.delete_matched views/site_search_form * '' – yivo
레일즈 3에서 프래그먼트 캐시의 끝에는 해시가 있습니다. 생성됩니다. 따라서보기가 변경되면 캐시가 자동으로 체포되지만 키로 만료되기가 어렵습니다. 캐시 호출에서'skip_digest : true'로 해시를 추가하지 않도록 Rails에 지시 할 수 있습니다. 추가 정보 : https://www.reinteractive.net/posts/197-if-you-explicitly-expire-cached-fragments-opt-out-of-cache-digests –
는 :: Base.new.expire_fragment (키) ActionController 레일 5에서
ruby-1.8.7-p334 : 007> ActionController :: Base.new.expire_fragment (: controller => 'main', : action => 'index') NoMethodError : nil에 대해 정의되지 않은 메소드'host_with_port ': NilClass – pixelearth
레일스 3의 경우, 프래그먼트 캐시의 끝에 해쉬가있다. 이는 생성 된 뷰의 내용을 기반으로합니다. 따라서보기가 변경되면 캐시가 자동으로 체포되지만 키로 만료되기가 어렵습니다. 캐시 호출에서'skip_digest : true'로 해시를 추가하지 않도록 Rails에 지시 할 수 있습니다. 자세한 정보 : https://www.reinteractive.net/posts/197-if-you-explicitly-expire-cached-fragments-opt-out-of-cache-digests –
Rails.cache.delete "views/site_search_form"
나는 체포하기 위해 다음과 같은 조치를 취했다 skip_digest: true
에 의지하지 않고 캐시. 우리의 문제는 I18n 문자열의 값을 변경하는 것이 계산 된 캐시 다이제스트에 반영되지 않으므로 캐시가 자동으로 파기되지 않기 때문입니다.
/ views/layouts/_footer.html.slim
- cache :footer do
span= t('shared.footer')
그런 다음 레일 콘솔에서 내가 실행 :
fragment = ActionController::Base.new.view_context.cache_fragment_name(:footer, virtual_path: 'layouts/_footer.html.slim')
ActionController::Base.new.expire_fragment(fragment)
cache_fragment_name
가 virtual_path
키워드 인수에 따라 다이제스트를 알아낼 것입니다 여기에
실행중인 Rails 버전은 무엇입니까? 캐시 삭제 방법이 2.1에 추가되었습니다. – vrish88