القضبان - مخبأ جزء لا تنتهي
-
23-08-2019 - |
سؤال
هذا واحد قد ارتدي.
لدي عرض مع شظية مخزنة مؤقتا:
- cache :key=>"news" do
%h2 News
- etc
لدي كاسحة يستخدم:
def expire_home_cache
puts "expire_home_cache"
expire_fragment(:key => "news")
end
يسمى Sweeper كما أستطيع أن أرى "expire_home_cache" في إخراج وحدة التحكم.
لكن الشظية غير محدثة ...
أيه أفكار؟
المحلول
قد تحاول هذا:
cache("news") do
%h2 News
- etc
end
و...
def expire_home_cache
puts "expire_home_cache"
expire_fragment("news")
end
... أو جرب هذا ...
- cache({:key=>"news"}) do
%h2 News
- etc
أفكر في أن القضية قد تكون أن روبي أو القضبان تواجه صعوبة في تحديد ما هو المفتاح هو بالضبط وهكذا تقوم طريقة ذاكرة التخزين المؤقت و Expire_Fragment بتوليد مفتاحين مخبأين مختلفين.
نصائح أخرى
حاول استبدال expire_fragment(:key => "news")
مع ActionController::Base.new.expire_fragment(:key => "news")
لا وقت لشرح، لكنه يعمل بالنسبة لي.
الطريقة المناسبة للقيام بذلك هي:
cache :news do
...
end
ثم في كاسحك:
expire_fragment :news
لا يجيب هذا على سؤالك مباشرة، لكن هل جربت البرنامج المساعد Timed_fragment_cache كديل؟
http://github.com/tricycle/timed_fragment_cache/tree/master.
لقد وجدت أن هذا هو وسيلة أبسط بكثير لتنتهي الشظايا في مشاريعي.