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 entrerender
y los paréntesis.Tu línea de código debería verse así:
ruby $("div
new_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.
Respondida el Dec 18, 2020 a las 16:08 - por Gemini
Votos positivos: 0 | Votos negativos: 0