مشكلة مع سكريبت الاستيراد ipboard3.rb

أحاول استيراد بيانات من منتديات ipb الخاصة بي، وعند تشغيل السكربت ipboard3 يظهر لي الخطأ التالي:

script/import_scripts/ipboard3.rb:375:in `clean_up': undefined method `encode!' for nil:NilClass (NoMethodError)
root@forum:/var/www/discourse#  `clean_up': undefined method `encode!'

لماذا يظهر لي “undefined method ‘encode!’”؟ :confused:

لأنها تُستدعى بينما المتغير raw يساوي nil.

لذا، ستحتاج إلى تحديد الدالة التي تستدعيها ولماذا لا يتم جلب البيانات الخاصة بـ raw للمنشور.

أعتقد أن السطر التالي هو السبب:

           bio_raw: clean_up(u["pp_about_me"]),

إذا كان الأمر كذلك، فربما الحل هو تعديل الدالة clean_up لتُرجع nil في حال عدم وجود بيانات.

هل هذا جيد؟

if raw.to_i.zero?
return
end

لقد جربت هذا وتم استيراد جميع المستخدمين والمواضيع والمنشورات، لكن المنشورات لا تحتوي على نص (هي فارغة). هل لديك أي فكرة عن السبب؟ لا أعتقد أن إضافة “return nil” ستحدث فرقًا كبيرًا، ما رأيك؟
أيضًا، تم استيراد جميع الرسائل الشخصية لكنها فارغة أيضًا.

استعلام قاعدة البيانات خاطئ لسبب ما. فهو لا يجلب بيانات محتوى المنشور.

لا، هذا سيُفعّل كثيرًا جدًا. جرّب هذا:

أرجع إذا كان raw nil

هذا غريب لأنني أستخدم IPB3 وقد تحققت من أسماء الأعمدة وهي متطابقة :open_mouth:

إذا قمت بتنفيذ الاستعلامات التي يقوم بها السكربت، هل توفر البيانات التي تتوقعها؟

هل قمت بتغيير كودك:

if raw.to_i.zero?

إلى شيء مثل:

if raw.length == 0

فإن "randome text".to_i.zero? ستعطي دائمًا قيمة صحيحة.