Hola: Estoy intentando subir un archivo CSV con varias etiquetas, pero cada vez obtengo un mensaje de error que dice: “Lo sentimos, hubo un error al subir ese archivo. Por favor, inténtalo de nuevo”.
Los registros en el panel de administración indican:
Mensaje (8 copias reportadas)
No se pudo procesar correctamente la respuesta interceptada: Validación fallida: El nombre no es válido
Rastreo
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/validations.rb:80:in `raise_validation_error'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/validations.rb:53:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `block in save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:278:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:366:in `with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/suppressor.rb:48:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/persistence.rb:55:in `create!'
Intenté crear una etiqueta de prueba, es decir, solo una entrada en el archivo CSV (por ejemplo, la palabra java), pero obtengo el mismo mensaje de error.
Por cierto, instalé Discourse en DigitalOcean siguiendo la guía oficial de instalación y todo lo demás funciona correctamente.
Gracias @codinghorror, avísame si encuentras algo. Si sirve de ayuda, estoy ejecutando la versión 2.5.0.beta7 ( 14dc6f350e ) en un Droplet con 4 GB de RAM y 80 GB de SSD.
Además de esto, he instalado los plugins aksimet, formatting-toolbar y discourse-voting.
Acabo de probar esto en try.discourse.org. Utilicé un editor de texto básico para crear un archivo CSV llamado tags.csv que solo contenía la palabra java, y pude usar la herramienta de carga masiva de etiquetas para agregar la nueva etiqueta sin problemas.
El sitio try.discourse.org tiene Akismet y discourse-voting, y dudo mucho que el plugin formatting-toolbar entre en conflicto de alguna manera que produzca el error que estás viendo.
¿Puedes subir archivos sin problemas en otros contextos (publicaciones, temas, etc.)?
La subida sigue fallando. ¿Tendrá algo que ver con los permisos? Soy el administrador del sitio, así que supongo que debería tener todos los permisos necesarios para hacerlo.
Esta vez estoy usando la versión 2.5.0.beta7 (70e50a2255).
Avísame si hay algo más que quieras que intente. ¡Gracias!
Hmm, intenté renombrar mi archivo a tags-1.csv y aún así no pude reproducir el error. Si lo vuelves a cambiar a tags-1.csv e intentas subirlo, ¿falla de nuevo? Me pregunto si había algo más en tu nombre de archivo original y que al cambiarlo a tags.csv de alguna manera se solucionó.
No, sigue sin funcionar para mí. Lo único que hago en mi Mac es
$ vi tags-1.csv
Luego i para entrar en modo edición java esc para salir del modo edición :wq y Enter para guardar y salir.
Eso es todo. Esto también falla. Inicialmente pensé que podría tener algo que ver con un Excel exportado a CSV, pero, incluso la edición desde la línea de comandos está generando problemas.
Por ahora continuaré con tags.csv, pero, si crees que esto es importante y deseas que ejecute pruebas, estaré encantado de hacerlo. Lo mismo ocurrió en dos droplets diferentes con instalaciones nuevas, lo cual me preocupó.
Veo otro problema (de nuevo, no estoy seguro si esto está relacionado con mi entorno).
Mis etiquetas son una lista de lenguajes de programación. Tenía C++ y C# en esa lista y, una vez que los eliminé de tags.csv, la carga masiva se completó. Me pregunto si esto tiene algo que ver con que la etiqueta termine con un carácter especial. De nuevo, podría ser solo yo
¡Sí! Definitivamente ese es el problema. Pensé que solo estábamos trabajando con la palabra java en el archivo, dado tu último mensaje. Necesitarías usar algo como cpp, c-sharp, etc.
Sí, creo que eso sería ideal. El error actual no le da al usuario mucho en qué basarse:
Lo sentimos, hubo un error al subir ese archivo. Por favor, inténtalo de nuevo.
Dato interesante que no conocía: al intentar crear una etiqueta en contextos normales de creación o edición de temas, parece que simplemente eliminamos silenciosamente cualquier símbolo. Así que ingresar C++ sugeriría C como la etiqueta.
Iba a editar el texto (para indicar la posibilidad de etiquetas no válidas), pero creo que ese texto se aplica a todas las cargas, por lo que no siempre sería preciso.
Una forma rápida, en mi opinión, sería incluir un par de frases al respecto en la sección de Etiquetas de la Configuración de Administración, describiendo las restricciones sobre los nombres de las etiquetas.
Sí, definitivamente parece ser el caso. Encontré dónde se lanza el error genérico en el código de carga de etiquetas, así que intentaré crear un error más específico para este caso en un PR.