Hallo! Ich habe sehr viele Kategorien (etwa 2000). Jetzt muss ich die Reihenfolge einer Kategorie ändern. Die Standardfunktion „Kategorien neu anordnen
Hast du das bereits geklärt? Wenn du weiterhin Timeout-Fehler erhältst, müsstest du die position der Kategorie über die Rails-Konsole der Website festlegen. Das könnte bei 2000 Kategorien jedoch etwas kompliziert sein.
Nein, die Lösung habe ich noch nicht gefunden.
Wie mache ich das? Ich habe keine Ahnung von der Rails-Konsole.
Ich habe das noch etwas genauer untersucht. Bei 2000 Kategorien wird dies eine ziemlich komplexe Operation – das Ändern der Position einer Kategorie beeinflusst die Position aller nachfolgenden Kategorien. Ich bin daher zurückhaltend, eine Änderung über die Konsole vorzuschlagen.
Technisch gesehen bin ich mir nicht sicher, ob dies ein Fehler ist. Discourse erlaubt zwar die Erstellung von über 2000 Kategorien, aber die Benutzeroberfläche ist nicht dafür ausgelegt, so viele Kategorien zu verwalten. Konnten Sie Kategorien in der Vergangenheit ohne Probleme neu anordnen?
Möchtest du, dass sie alphabetisch sortiert sind? Ich hatte einmal ein Skript, um Kategorien und Unterkategorien alphabetisch zu sortieren.
Ich nehme an, jemand hat dir bereits versucht, Tags statt Kategorien zu empfehlen? Das ist wahrscheinlich nur das erste von vielen Problemen, die du mit so vielen Kategorien haben wirst.
Nein, ich habe dieses Problem zum ersten Mal und hatte es vorher nicht. Ich habe diese Anzahl von Kategorien über das Skript in der normalen Benutzeroberfläche erstellt. Wie kann ich das über die Konsole machen?
Ich verwende Tags für einen anderen Zweck und kann sie nicht mit anderen Substanzen mischen. Jetzt muss ich eine Unterkategorie nach oben verschieben. Ich habe sie vor der Erstellung manuell sortiert. Der einzige Weg ist die Nutzung der Konsole. Habt ihr Ideen, wie das geht?
Du würdest Folgendes tun:
cd /var/discourse
./launcher enter app
rails c
um zur Konsole zu gelangen. Danach würdest du etwas ausführen.
Wenn du sie nicht verstehst, möchtest du es wahrscheinlich nicht selbst machen.
Hier sind Skripte, die meiner Meinung nach um den 12. Januar 2018 herum funktioniert haben. Ich verspreche nicht, dass sie funktionieren, aber ich sehe keinen Grund, warum sie es nicht sollten. Sichern Sie Ihre Daten und zünden Sie eine Kerze an. ![]()
# Alphabetische Sortierung aller Kategorien, die der Suche entsprechen, und ihrer Unterkategorien
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
# Alphabetische Sortierung der Unterkategorien einer einzelnen Kategorie, die der Suche entspricht
def sort_matching_subcategories(search)
categories = Category.where("name like ?", search)
if categories.count > 1
puts "Mehr als eine Kategorie gefunden"
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
Wenn Sie mehr Hilfe benötigen und ein Budget haben, besuchen Sie Redirecting… oder senden Sie mir eine E-Mail.
Ich hoffe, das hilft!