قم بتعيين ذاكرة التخزين المؤقت_العملية، :expires_in => ديناميكيًا
-
15-11-2019 - |
سؤال
كل مثال على caches_action
لقد رأيت يبدو مثل:
caches_action, :expires_in => 5.minutes
ولكن أود أن تعيين expires_in
بناءً على وقت انتهاء صلاحية الكائن المستخدم في الإجراء.هل هناك أي طريقة للإشارة إلى هذا الكائن عند الإعداد expires_in
نظرًا لأن الكائن المعني يعتمد على params
أرسلت إلى العمل؟
حاولت استخدام
caches_action, :expires_in => Object.find(params[:id])
ولكن للأسف لن يسمح لي بالإشارة إلى المعلمات هناك.اقتراحات موضع ترحيب!
المحلول
يبدو أنك بحاجة إلى استخدام Proc الذي يمكنه تمرير معلمات وحدة التحكم.هنا مثال
caches_action :show, cache_path: Proc.new {|controller_instance| "some_cache_path_that_is_uniq/#{controller_instance.params[:id]}"}
نصائح أخرى
النقطة الرئيسية للتخزين المؤقت للإجراءات هي منع تنفيذ الإجراءات في كل مرة يأتي فيها طلب جديد.ما لم يتم تعريفها بشكل صريح، لا يتم أخذ المعلمات بعين الاعتبار.
إذا كنت تريد التخزين المؤقت بناءً على الحالات التي أقترح القيام بها يحصل الشرطية.
لا تنتمي إلى StackOverflow