مرحبًا! لدي عدد كبير من الفئات (حوالي 2000). الآن أحتاج إلى تغيير ترتيب فئة واحدة فقط. تفشل وظيفة “إعادة ترتيب الفئات” القياسية بخطأ 502 بعد دقيقة واحدة. كيف يمكن حل هذه المشكلة؟ شكرًا لك!
هل تمكنت من حل هذه المشكلة؟ إذا كنت لا تزال تواجه أخطاء تجاوز الوقت المحدد، فقد تحتاج إلى تعيين position للفئة من خلال وحدة تحكم Rails في الموقع. يبدو أن القيام بذلك مع 2000 فئة أمر معقد بعض الشيء.
لا، لم أجد الحل بعد.
كيف يمكنني فعل ذلك؟ ليس لدي أي فكرة عن وحدة تحكم Rails.
لقد بحثت في هذا الأمر قليلًا. مع وجود 2000 فئة، ستكون العملية معقدة إلى حد ما؛ حيث إن تغيير موضع فئة واحدة سيؤثر على موضع جميع الفئات التي تليها. وأنا متردد في اقتراح إجراء التغيير عبر وحدة التحكم.
من الناحية التقنية، لست متأكدًا مما إذا كان هذا عيبًا. فـ Discourse يسمح بإنشاء أكثر من 2000 فئة، لكن واجهة المستخدم غير مصممة للتعامل مع هذا العدد الكبير من الفئات. هل تمكنت من إعادة ترتيب الفئات في الماضي دون مشاكل؟
هل تريد أن تكون أبجدياً؟ لقد كان لدي في السابق سكريبت لترتيب الفئات والفئات الفرعية ترتيباً أبجدياً.
أعتقد أن شخصاً ما حاول إقناعك باستخدام الوسوم بدلاً من ذلك؟ على الأرجح أن هذه مجرد أول المشكلات التي ستواجهها مع هذا العدد الكبير من الفئات.
لا، هذه هي المرة الأولى التي أواجه فيها هذه المشكلة ولم تكن موجودة من قبل. لقد قمت بإنشاء هذا العدد من الفئات عبر السكربت في الواجهة العادية. كيف يمكنني فعل ذلك عبر وحدة التحكم؟
أستخدم الوسوم لغرض آخر ولا يمكنني خلطها مع مواد أخرى. الآن أحتاج إلى نقل فئة فرعية واحدة للأعلى. قمت بفرزها يدويًا قبل الإنشاء. الطريقة الوحيدة هي استخدام وحدة التحكم. هل لديك أي أفكار حول كيفية القيام بذلك؟
ستقوم بتنفيذ شيء مثل
cd /var/discourse
./launcher enter app
rails c
للوصول إلى وحدة التحكم. ثم يمكنك تنفيذ المهام.
إذا لم تفهمها، فمن المرجح أنك لا ترغب في القيام بذلك بنفسك.
إليك نصوص برمجية أعتقد أنها كانت تعمل في أو حول 12 يناير 2018. لا أضمن أنها تعمل، لكنني لا أرى سببًا لعدم عملها. قم بنسخ احتياطي وشعل شمعة. ![]()
# ترتيب فئات البحث المطابقة ترتيبًا أبجديًا وفئاتها الفرعية
def sort_matching_categories_and_subcategories(search)
categories = Category.where("name like ?", search)
position = 100
categories.order(:name).each do |cat|
position += 5
cat.position = position
cat.save!()
c_position = 0
children = Category.where(:parent_category_id=>cat.id)
children.order(:name).each do |c|
c_position += 5
c.position = c_position
c.save!()
end
end
end
# ترتيب فئات البحث الفرعية المطابقة لفئة واحدة
def sort_matching_subcategories(search)
categories = Category.where("name like ?", search)
if categories.count > 1
puts "Found more than one category"
end
categories.order(:name).each do |cat|
c_position = 5
children = Category.where(:parent_category_id=>cat.id)
children.order(:name).each do |c|
c_position += 5
c.position = c_position
c.save!()
end
end
end
إذا كنت بحاجة إلى مزيد من المساعدة ولديك ميزانية، فراجع Redirecting… أو أرسل لي بريدًا إلكترونيًا.
آمل أن يكون هذا مفيدًا!