¡Hola! Tengo muchas categorías (unas 2000). Ahora necesito cambiar el orden de una categoría. La función estándar “Reordenar categorías” falla con un error 502 después de 1 minuto. ¿Cómo se puede solucionar? ¡Gracias!
¿Has podido resolverlo? Si aún recibes errores de tiempo de espera, es posible que debas establecer la posición de la categoría desde la consola de Rails del sitio. Sin embargo, eso parece algo complicado de hacer con 2000 categorías.
No, aún no he encontrado la solución.
¿Cómo puedo hacer esto? No tengo idea sobre la consola de Rails.
Lo investigué un poco más. Con 2000 categorías, será una operación bastante compleja: cambiar la posición de una categoría afectará a la posición de todas las que vienen después. No me siento cómodo sugiriendo realizar el cambio a través de la consola.
Técnicamente, no estoy seguro de si esto es un error. Discourse permite crear más de 2000 categorías, pero la interfaz de usuario no está diseñada para manejar esa cantidad. ¿Has podido reordenar categorías en el pasado sin problemas?
¿Quieres que estén en orden alfabético? Una vez tuve un script para ordenar categorías y subcategorías alfabéticamente.
Supongo que alguien ya intentó convencerte de usar etiquetas en su lugar, ¿verdad? Probablemente este sea solo el primero de los problemas que tendrás con tantas categorías.
No, me encuentro con este problema por primera vez y antes no lo tenía. Creé esta cantidad de categorías mediante el script en la interfaz normal. ¿Cómo puedo hacerlo a través de la consola?
Uso las etiquetas para otro propósito y no puedo mezclarlas con otras sustancias. Ahora necesito mover una subcategoría hacia arriba. Las ordené manualmente antes de la creación. La única opción es usar una consola. ¿Alguna idea sobre cómo hacerlo?
Haces algo como esto:
cd /var/discourse
./launcher enter app
rails c
para acceder a la consola. Luego, haces lo que necesites.
Si no los entiendes, probablemente no quieras hacerlo tú mismo.
Aquí tienes unos scripts que creo que funcionaron alrededor del 12 de enero de 2018. No garantizo que funcionen, pero no veo por qué no deberían. Haz copias de seguridad y enciende una vela. ![]()
# Ordenar alfabéticamente todas las categorías que coinciden con la búsqueda y sus subcategorías
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
# Ordenar alfabéticamente las subcategorías de una sola categoría que coincide con la búsqueda
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
Si necesitas más ayuda que eso y tienes presupuesto, consulta Redirecting… o envíame un correo electrónico.
¡Espero que esto te ayude!