URL compleja para crear nuevos temas resulta en error del lado del servidor

Antes podíamos hacer esto:

Sin embargo, ya no funciona cuando hay varias etiquetas, así que supongo que este error se introdujo en una versión reciente. ¿O ha cambiado el formato?

1 me gusta

https://meta.discourse.org/new-topic?category=support&tags=tag1,tag2 me funciona perfectamente :thinking:

2 Me gusta

Parece que esto solo está ocurriendo en ciertas categorías: hay muchos de estos errores en /logs:

info:

NoMethodError (undefined method `name' for nil:NilClass)
app/models/topic_list.rb:74:in `preload_key'
lib/topic_list_responder.rb:12:in `block (2 levels) in respond_with_list'
lib/topic_list_responder.rb:9:in `respond_with_list'
app/controllers/list_controller.rb:102:in `block (2 levels) in <class:ListController>'
app/controllers/application_controller.rb:358:in `block in with_resolved_locale'
app/controllers/application_controller.rb:358:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:177:in `call'

backtrace:

app/models/topic_list.rb:74:in `preload_key'
lib/topic_list_responder.rb:12:in `block (2 levels) in respond_with_list'
actionpack (6.0.3.5) lib/action_controller/metal/mime_responds.rb:214:in `respond_to'
lib/topic_list_responder.rb:9:in `respond_with_list'
app/controllers/list_controller.rb:102:in `block (2 levels) in <class:ListController>'
actionpack (6.0.3.5) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.0.3.5) lib/abstract_controller/base.rb:195:in `process_action'
actionpack (6.0.3.5) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.0.3.5) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:112:in `block in run_callbacks'
app/controllers/application_controller.rb:358:in `block in with_resolved_locale'
i18n (1.8.9) lib/i18n.rb:314:in `with_locale'
app/controllers/application_controller.rb:358:in `with_resolved_locale'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:139:in `run_callbacks'
actionpack (6.0.3.5) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.0.3.5) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.0.3.5) lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
activesupport (6.0.3.5) lib/active_support/notifications.rb:180:in `block in instrument'
activesupport (6.0.3.5) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.0.3.5) lib/active_support/notifications.rb:180:in `instrument'
actionpack (6.0.3.5) lib/action_controller/metal/instrumentation.rb:32:in `process_action'
actionpack (6.0.3.5) lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord (6.0.3.5) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.0.3.5) lib/abstract_controller/base.rb:136:in `process'
actionview (6.0.3.5) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (2.3.1) lib/mini_profiler/profiling_methods.rb:111:in `block in profile_method'
actionpack (6.0.3.5) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.0.3.5) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.0.3.5) lib/action_dispatch/journey/router.rb:49:in `block in serve'
actionpack (6.0.3.5) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.0.3.5) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:834:in `call'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/cookies.rb:648:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.0.3.5) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (6.0.3.5) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster (2.9.6) lib/logster/middleware/reporter.rb:43:in `call'
railties (6.0.3.5) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.0.3.5) lib/rails/rack/logger.rb:28:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/request_id.rb:27:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.0.3.5) lib/action_dispatch/middleware/host_authorization.rb:76:in `call'
rack-mini-profiler (2.3.1) lib/mini_profiler/profiler.rb:373:in `call'
message_bus (3.3.4) lib/message_bus/rack/middleware.rb:61:in `call'
lib/middleware/request_tracker.rb:177:in `call'
railties (6.0.3.5) lib/rails/engine.rb:527:in `call'
railties (6.0.3.5) lib/rails/railtie.rb:190:in `public_send'
railties (6.0.3.5) lib/rails/railtie.rb:190:in `method_missing'
rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.3) lib/rack/urlmap.rb:58:in `each'
rack (2.2.3) lib/rack/urlmap.rb:58:in `call'
unicorn (6.0.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.0.0) lib/unicorn/http_server.rb:732:in `worker_loop'
unicorn (6.0.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.0.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.0.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `load'
vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `<main>'

Funciona en una categoría de nivel superior con una sola palabra, pero no en una categoría que es una subcategoría y tiene un guion en el nombre :confused:

Estos funcionan:
https://forum.com/new-topic?category=admin&tags=tag1,tag2
https://forum.com/new-topic?category=moderators&tags=tag1,tag2

Estos no funcionan: (son subcategorías)
https://forum.com/new-topic?category=frontend-chat&tags=tag1,tag2
https://forum.com/new-topic?category=frontend-news&tags=tag1,tag2

(Guía: ¿valdría la pena intentar pasar el ID de la categoría en su lugar? ¿Es eso posible?)

Edición:

Parece que no funciona para subcategorías. Creé una nueva subcategoría llamada ‘test’ — lo intenté, pero no funcionó. Luego la saqué de la categoría principal y la convertí en una categoría de nivel superior… y entonces funcionó.

1 me gusta

El problema es que la URL funciona para subcategorías y para etiquetas, pero no para una combinación de subcategorías con múltiples etiquetas simultáneamente. Se actualizó el título.

Ejemplo de error: https://meta.discourse.org/new-topic?title=topic%20title&body=topic%20body&category=support/wordpress&tags=wordpress,blog

Funciona correctamente mediante el enrutamiento de Ember, pero falla en el lado del servidor (como al abrirlo en una nueva pestaña).

1 me gusta

Lo mismo está ocurriendo aquí con ese enlace en tu publicación:

Vaya

El software que impulsa este foro de discusión encontró un problema inesperado. Lamentamos las molestias.

Se registró información detallada sobre el error y se generó una notificación automática. Lo revisaremos.

No es necesario tomar ninguna medida adicional. Sin embargo, si el error persiste, puedes proporcionar más detalles, incluidos los pasos para reproducir el error, publicando un tema de discusión en la categoría de comentarios del sitio.

…pero en mi foro parece ocurrir cuando la categoría es una subcategoría en lugar de una categoría de nivel superior. Solo estaba usando el nombre de la categoría, por cierto, sin incluir el nombre de la categoría principal en la URL como tú lo tienes, y antes funcionaba perfectamente.

(No estoy seguro de que se pueda llamar una URL ‘compleja’, después de todo; ¿es solo una URL de nuevo tema con parámetros?)

2 Me gusta

Parece que se introdujo una regresión en este commit. Aquí está la PR con la corrección:

Gracias por reportar este problema @AstonJ :+1:

EDITO: La PR ya fue fusionada.

https://meta.discourse.org/new-topic?title=topic%20title%5Cu0026body=topic%20body%5Cu0026category=support/wordpress%5Cu0026tags=wordpress,blog

^^ El ejemplo anterior ahora funciona en el lado del servidor.

6 Me gusta