قم بتعيين ذاكرة التخزين المؤقت_العملية، :expires_in => ديناميكيًا

StackOverflow https://stackoverflow.com/questions/9520595

سؤال

كل مثال على 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]}"}

نصائح أخرى

النقطة الرئيسية للتخزين المؤقت للإجراءات هي منع تنفيذ الإجراءات في كل مرة يأتي فيها طلب جديد.ما لم يتم تعريفها بشكل صريح، لا يتم أخذ المعلمات بعين الاعتبار.

إذا كنت تريد التخزين المؤقت بناءً على الحالات التي أقترح القيام بها يحصل الشرطية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top