Konsolu önbelleğe alınmış bir görünümü nasıl doldurabilirim?
Rails.cache.delete('site_search_form')
gibi bir şey çalışmıyor. Mümkün mü? Teşekkürler.
Konsolu önbelleğe alınmış bir görünümü nasıl doldurabilirim?
Rails.cache.delete('site_search_form')
gibi bir şey çalışmıyor. Mümkün mü? Teşekkürler.
Önbellek parçası girdileri, Rails.cache ile eriştiğinizden biraz farklı bir anahtarla oluşturulur.
Kullanım yerine expire_fragment
(bir kontrolöre gönderebilirsiniz): http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html#M000438
Bu benim için çalışmıyor. Bu da sizin için çalışmaya Raylar 3 itibariyle 'Rails.cache.delete_matched 'görünümler/site_search_form *'' – yivo
deneyin olmazsa, parça önbelleğe bakış içeriğine dayalı sonunda bir karma, sahip olduğu onlar Üretilir. Bu, görünüm değiştiğinde önbellek otomatik olarak bozulur, ancak anahtarla süresinin dolmasını zorlaştırır. Rails'e hashı, önbellek çağrısında 'skip_digest: true' ile eklememesini söyleyebilirsiniz. Daha çok bilgi: https://www.reinteractive.net/posts/197-if-you-explicitly-expire-cached-fragments-opt-out-of-cache-digests –
:: Base.new.expire_fragment (anahtar) ActionController Rails 5'te
yakut-1.8.7-P334: 007> ActionController :: Base.new.expire_fragment (: kontrolör => 'ana',: aksiyon => 'endeksi') NoMethodError: tanımsız yöntemi 'host_with_port' nil için: NilClass – pixelearth
Raylar 3 itibarıyla, fragman önbelleğe ucunda bir karma Bu, oluşturuldukları görünümün içeriğine dayanır. Bu, görünüm değiştiğinde önbellek otomatik olarak bozulur, ancak anahtarla süresinin dolmasını zorlaştırır. Rails'e hashı, önbellek çağrısında 'skip_digest: true' ile eklememesini söyleyebilirsiniz. Daha fazla bilgi: https://www.reinteractive.net/posts/197-if-you-explicitly-expire-cached-fragments-opt-out-of-cache-digests –
Rails.cache.delete "views/site_search_form"
Ben büstü için aşağıdaki adımlar attı önbellek skip_digest: true
başvurmadan. Sorunumuz, I18n dizelerinin değerinin değiştirilmesinin, önbellek otomatik olarak yakalanmayacağından, hesaplanan önbellek özetinde yansıtılmamasıdır.
/ views/layouts/_footer.html.slim
- cache :footer do
span= t('shared.footer')
Sonra raylar konsolda koşuyorum:
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
kelime argüman dayalı özetini anlamaya edecek İşte
Rails hangi sürümde çalışıyorsunuz? Önbellek silme yöntemi 2.1'de eklendi. – vrish88