ما هي التغييرات هنا، إن وجدت، التي ستتطلب إعادة خبز المنشورات التي تحتوي على علامات تصنيف؟
هل ستتم أي إعادة خبز مطلوبة تلقائيًا بناءً على تمكين هذا، أم ستكون هناك خطوة ترحيل صريحة لإعادة الخبز؟
ما هي التغييرات هنا، إن وجدت، التي ستتطلب إعادة خبز المنشورات التي تحتوي على علامات تصنيف؟
هل ستتم أي إعادة خبز مطلوبة تلقائيًا بناءً على تمكين هذا، أم ستكون هناك خطوة ترحيل صريحة لإعادة الخبز؟
بعد تمكين الميزة، قمت بتشغيل إعادة خبز جميع المشاركات عبر rails.
لدي الكثير من المشاركات، والغالبية العظمى منها لن تحتاج إلى تعديل. كنت آمل أن تكون هناك إمكانية لإعادة خبز المشاركات المتأثرة فقط، سواء كانت صريحة أو ضمنية.
قد يؤدي إعادة الخبز إلى الإضرار بالمشاركات القديمة أيضًا، على ما يبدو:
كيفية تجنب المشكلات المحتملة عند إعادة خبز جميع المشاركات؟
هذه الميزة طازجة. لا توجد قدرة مدمجة لإعادة خبز جميع المشاركات التي تتضمن إشارات للفئات/العلامات معها في هذا الوقت. سأبقي أذني على الأرض هنا لمعرفة ما يشعر به الناس بأنه ضروري هناك و/أو ما هي الحلول التي سيتوصل إليها الناس في غضون ذلك.
هل هناك نمط ربما يمكننا استخدامه لإعادة خبز جميع المنشورات باستثناء تلك التي تحتوي على تضمين/onebox؟
ما نريد إعادة خبزه هو جميع المشاركات التي تتطابق فيها تمثيل المطهو مع class=\"hashtag\"، على حد علمي.
لا أعتقد أن rebake_match سيساعد هنا لأنه يطابق النص الخام، ولا يوجد خيار للمطابقة مقابل النص المطهو في مهام Rails الحالية. لذلك، أعتقد أن هذا سيتطلب برمجة فعلية، إما في وحدة تحكم Rails أو في مهمة جديدة.
شيء مثل
Post.where("cooked like '%class=\"hashtag\"%'").each do |p| p.rebake! end
شيء يشبه ذلك تمامًا! لقد اختبرت بنجاح ذلك بالضبط على موقع الاختبار الخاص بي.
كنت أفكر في خيار التأخير لـ posts:rebake_match ولكن ربما لا يهم.
بالطبع، يصر على إعادة معالجة جميع الصور في المشاركات المتأثرة، وهو أمر غير ضروري، لذا فإن الإصلاح الآلي لهذا الغرض فقط قد يتجنب ذلك بشكل معقول، ولكن في غضون ذلك، هناك طريقة للمضي قدمًا.
قد أرغب في القيام بذلك عن طريق عكس الترتيب وإضافة تأخير إذا كان لدى الموقع الكثير من المشاركات المتأثرة.
@mcwumbly الآن بعد أن تم الإعلان عن 3.0 مع هذه الميزة الرئيسية، ما رأيك في ترحيل يقوم فقط بإصلاح النص دون إعادة معالجة الصور، أو بدلاً من ذلك يسمح لك بإعادة خبز المشاركات المتأثرة فقط مع تأخير حتى لا يزدحم قوائم الانتظار بإعادة معالجة الصور؟
@martin هل يمكنك مشاركة بعض الأفكار هنا حول كيفية مقاربتك لهذه المشكلة؟
باختصار، أعتقد أن ما يريده الناس بشكل مثالي هو شيء مثل:
وربما أيضًا:
يمكنك بالفعل القيام بشيء كهذا.
Post.where("cooked like '%class=\\\"hashtag\\\"%'").update_all(baked_version: 0)
سيقوم بعد ذلك بمعالجة الأشياء في الوظائف المجدولة في الخلفية.
أتوقع أن نزيد baked_version في وقت ما خلال العام المقبل.
سأقوم بإنشاء مهمة “rake” للقيام بما يقترحه @sam أعلاه والذي يمكن لمستضيفي الخدمة تشغيله.
لا أعتقد أن هذا ضروري، نظرًا لأننا جعلنا هذا هو الإعداد الافتراضي للمواقع الجديدة، وسنزيل الخيار تمامًا قريبًا. إذا أراد الناس تجربته، يمكنهم تمكين الإعداد، وإعادة خبز عدد قليل من المشاركات يدويًا في واجهة المستخدم، ثم إذا لم يعجبهم، يمكنهم إيقاف تشغيل الإعداد وإعادة خبز نفس المشاركات.
على الرغم من ذلك، لن يكون هناك خيار قريبًا.
هل تعرف ما إذا كانت فكرة روابط الفئات الملونة لا تزال قيد النظر؟
إنها كذلك، لكننا نعتقد أن هذا أكبر في النطاق مما يبدو على السطح ولا تزال هناك عدد من التفاصيل التصميمية التي يجب العمل عليها أولاً، لذا لن يحدث ذلك على الفور.
رائع، يبدو جيدًا!
لقد قمت للتو بدمج مهمة rake لهذا:
bundle exec rake hashtags:mark_old_format_for_rebake
هل يمكنك تقديم دليل كامل للمبتدئين لاستخدام هذا الأمر؟
هل هناك أي طريقة لتغيير المشاركات الفردية كمستخدم (على سبيل المثال، التحرير/الحفظ بتعديل بسيط)؟
شكرا.
هذا هو النمط المعتاد لمهام rake:
cd /var/discourse
./launcher enter app
bundle exec rake hashtags:mark_old_format_for_rebake
يجب أن يعمل ذلك. إذا كنت من الموظفين، يمكنك النقر على المفتاح وإعادة بناء HTML.
لقد نجح ذلك، شكرًا لك. لأغراضي، بدا الأمر أقل خطورة من تجربة مهمة rake.