discourse(prod)> TopicEmbed.find_by(topic_id: 157441).as_json
Serializar modelos de ActiveRecord (TopicEmbed) sin especificar campos no está permitido. Usa un Serializer, o pasa la opción :only a #serializable_hash. Más información: ``https://meta.discourse.org/t/-/314495
=>
{"id"=>56685,
"topic_id"=>157441,
"post_id"=>483289,
"embed_url"=>
"``https://tecnoblog.net/noticias/paramount-oferece-us-108-bilhoes-em-dinheiro-para-tomar-warner-da-netflix”``,
"content_sha1"=>nil,
"created_at"=>"2025-12-08T17:54:07.585Z",
"updated_at"=>"2025-12-09T18:04:33.539Z",
"deleted_at"=>nil,
"deleted_by_id"=>nil,
"embed_content_cache"=>""}
discourse(prod)>
¿Podrías ejecutar el mismo comando de nuevo, pero esta vez:
./launcher enter app
rails c
TopicEmbed.find_by(topic_id: 157441).embed_url
Si lo que compartiste es de hecho el valor de embed_url en tu base de datos, entonces ese es el problema, y haré un pequeño PR a discourse/discourse para manejar casos extremos como este donde el embed_url ha terminado en un estado mal formado.
¿Así que todo el problema aquí es porque la PR anterior comenzó a eliminar las barras inclinadas finales de TopicEmbed en enero de este año? Me siento en conflicto con este cambio. Preferiría que respetáramos lo que el administrador nos envía, para ser honesto.
Efectivamente, no está siguiendo las redirecciones. ¿El foro se ejecuta en el mismo servidor/espacio de IP que el blog? Podría estar activando nuestra protección SSRF.
Si ese es el caso, necesita permitirlo configurando allowed_internal_hosts.
La razón por la que hicimos ese cambio es porque había una inconsistencia entre cómo funcionaban las incrustaciones de WP Discourse y las incrustaciones de javascript. Las incrustaciones de javascript siempre normalizaron la URL. Las incrustaciones de WP Discourse llegaron a través de una ruta diferente y no estaban normalizando la URL (hasta que hicimos el cambio). Eso provocó algunas otras inconsistencias.
Otro problema es que, cuando ejecuto un curl a la API, buscando el ID del tema de una URL de inserción (embed URL), no puedo encontrarlo debido a la barra inclinada final (trailing slash). Discourse devuelve una página 404.
Pero si elimino la barra inclinada final, devuelve el valor:
Para que funcione, necesitaría hacer un reemplazo de cadena (str replace) en WordPress, para eliminar la barra inclinada final del permalink, antes de verificar. Pero esto no tiene sentido, la URL canónica tiene la barra inclinada final…
En la práctica, Discourse está normalizando el permalink a una URL que no existe… la versión normalizada debería ser la que tiene una barra inclinada final.
Pero todavía me preocupan las URL sin la barra final, por las razones mencionadas en mi publicación anterior. ¿Debería abrir un nuevo tema sobre esto @angus?
¡Claro! No afectará a la función “Publicación Completa”, ya que ahora podemos seguir las redirecciones en sitios del mismo dominio que el foro, pero puedes continuar en un nuevo tema para otras preocupaciones.