لقد اضطررت إلى تصحيح هذه المشكلات بهذه الطريقة عدة مرات وهي معقدة، لذا تحلَّ بالصبر معي.
قم بتشغيل البرنامج النصي التالي وشارك المخرجات هنا
# استبدل بمعرف الموضوع أو عنوان URL الذي تقوم بتصحيحه
topic_id = 386983
# 1. التحقق مما إذا كان TopicEmbed موجودًا ومحتواه
te = TopicEmbed.find_by(topic_id: topic_id)
puts "TopicEmbed موجود: #{te.present?}"
puts "رابط التضمين: #{te&.embed_url}"
puts "ذاكرة التخزين المؤقت للمحتوى موجودة: #{te&.embed_content_cache.present?}"
puts "طول ذاكرة التخزين المؤقت: #{te&.embed_content_cache&.length || 0}"
puts "محتوى SHA1: #{te&.content_sha1}"
# 2. التحقق من المحتوى المخزن مؤقتًا الفعلي (أول 500 حرف)
puts "\n--- معاينة المحتوى المخزن مؤقتًا ---"
puts te&.embed_content_cache&.truncate(500)
# 3. محاولة الجلب من عنوان URL البعيد
if te&.embed_url.present?
puts "\n--- محاولة الجلب عن بعد ---"
begin
response = TopicEmbed.find_remote(te.embed_url)
puts "نجاح الجلب عن بعد: #{response.present?}"
puts "الجسم البعيد موجود: #{response&.body.present?}"
puts "طول الجسم البعيد: #{response&.body&.length || 0}"
puts "العنوان البعيد: #{response&.title}"
puts "الجسم البعيد: #{response&.body&.truncate(500)}"
rescue => e
puts "فشل الجلب عن بعد: #{e.message}"
end
end
# 4. التحقق مما سيعيده expanded_for
if te.present?
puts "\n--- اختبار expanded_for ---"
post = Post.find(te.post_id)
# مسح ذاكرة التخزين المؤقت لإجبار الجلب الجديد
Discourse.cache.delete("embed-topic:#{topic_id}")
begin
expanded = TopicEmbed.expanded_for(post)
puts "المحتوى الموسع موجود: #{expanded.present?}"
puts "طول المحتوى الموسع: #{expanded&.length || 0}"
rescue => e
puts "فشل expanded_for: #{e.message}"
end
end
# 5. التحقق من الإعدادات ذات الصلة
puts "\n--- إعدادات الموقع ---"
puts "embed_truncate: #{SiteSetting.embed_truncate}"
puts "allowed_embed_selectors: #{SiteSetting.allowed_embed_selectors}"
puts "blocked_embed_selectors: #{SiteSetting.blocked_embed_selectors}"
سيُظهر هذا سبب فشل https://tecnoblog.net/comunidade/t/governo-renova-app-da-cnh-para-baratear-obtencao-do-documento/157462?u=falco