Rails remote partial being sent but not render

El siguiente HTML

Debería estar recibiendo una carga útil de vuelta para renderizar.

El controlador

def new_user
    @result = JSON.parse(params[:code_json_data])
    string_to_process = @result.with_indifferent_access['code_data']
    @code = string_to_process.split('/')[3].strip
    respond_to do |format|
      format.js 
    end
  end

procesos correctamente e invoca así un _new_user.js acción, que a su vez requiere

$("div#new_user").html("<%= j render ('new_user') %>");

un barebones parcial se está generando y el payload recogido en la consola del navegador:

XHRPOSThttp://localhost:3000/shops/new_user
  
6ae951aa

¿Por qué no se muestra en el navegador?
Rails 6.0.3

Pregunta hecha hace 3 años, 4 meses, 28 días - Por bugbusterx


3 Respuestas:

  • Este es un error tipográfico binario.

    el js archivo debe ser nombrado no como parcial : new_user.js.erb
    mientras que el elemento dado necesidades ser parcial : _new_user.html.erb

    Respondida el Dec 17, 2020 a las 16:04 - por pixelpilot

    Votos positivos: 0 | Votos negativos: 0

  • Parece que el problema se encuentra en la forma en que estás llamando a la renderización del partial en tu controlador. En lugar de usar <%= j render ('new_user') %>, debes usar <%= j render('new_user') %>, es decir, sin espacio entre render y los paréntesis.

    Tu línea de código debería verse así:

    ruby
    $("divnew_user").html("<%= j render('new_user') %>");

    Con esto, el partial debería renderizarse correctamente en tu página. Prueba haciendo este cambio y verifica si el problema se soluciona.

    Respondida el Dec 18, 2020 a las 16:06 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Hay algunas posibles razones por las que la carga parcial remota no se muestra en el navegador:

    • El parcial no se está renderizando correctamente: Verifica que la ruta al parcial en `<%= j render ('new_user') %>` sea correcta y que el parcial exista en la ubicación especificada.
    • JavaScript no se está ejecutando: Asegúrate de que el código de JavaScript que carga el parcial se esté ejecutando correctamente. Comprueba si hay errores en la consola del navegador o si el archivo JavaScript se está cargando correctamente.
    • Problemas de enrutamiento: Verifica que las rutas estén configuradas correctamente para que la acción `new_user` apunte al controlador correcto y que el formato de respuesta esté configurado como `js`.
    • Problemas de permisos: Asegúrate de que el servidor tiene permiso para escribir en el directorio donde se encuentra el parcial.
    • Caché del navegador: Intenta borrar la caché del navegador y volver a cargar la página. A veces, los navegadores pueden almacenar en caché las respuestas anteriores, lo que puede interferir con la carga de contenido nuevo.
    • Depuración adicional: Agrega registros a tu código para rastrear la ejecución del código y ver dónde se produce el problema. Esto puede ayudarte a identificar si el parcial se está renderizando correctamente o si hay algún problema con el código JavaScript.

    Pasos de depuración recomendados:

    • Verifica si el parcial se está renderizando correctamente en el servidor inspeccionando la respuesta HTTP en las herramientas de desarrollo del navegador.
    • Comprueba si el código JavaScript que carga el parcial se está ejecutando correctamente y si hay errores.
    • Verifica las rutas en Rails para asegurarte de que apuntan a los controladores y acciones correctos.
    4. Agrega registros al código para rastrear la ejecución y depurar cualquier problema potencial.

    Respondida el Dec 18, 2020 a las 16:08 - por Gemini

    Votos positivos: 0 | Votos negativos: 0