1. Al enviar las peticiones mediante AJAX, añadiendo remote:true continúa comportándose igual y redirecciona a la página de show.
2. No se pueden enviar peticiones AJAX continuas para ser observadas en la parte inferior de la página, concatenándose.
Soluciones:
1. Cambiar el orden en que se encuentran los formats html y json a json y html en el controlador post_controller.
2. Este punto está basado en el resultado luego de modificar continuamente todos los archivos para encontrar la causa.
2.1 añadir a los formats el format.js así: format.js {render :show, layout: false}
2.2 En mi caso modifiqué _form.haml a _form.html.erb aunque creo que este punto es irrelevante.
2.3 Hay que tener en cuenta que a la fecha JQuery está considerado como obsoleto, lo que no significa que no se deba usar, pero dado que ya no se considera necesario (hay artículos al respecto) considero que el show.js.coffee debe ser reemplazado por un código como el siguiente. Me gustaría que si cuentan con una propuesta mucho más elaborada la compartieran por este medio.
document.getElementById("posts").innerHTML = document.getElementById("posts").innerHTML + "<%= j render @post%>"
Comentarios:
Te solicito amablemente Uriel que por favor nos expliques por qué motivo hay que realizar estos cambios. En cuanto al primer problema, considero que es absurdo porque para mi el format es como un switch case, así que el orden no debería importar, pero bueno, sí importa. En el segundo caso creo entender que al ser una petición AJAX, ésta no debe ser resuelta con un layout y quizá por eso presentaba un error relacionado al caracter "<" que nunca encontré.
Muchas gracias. Aprendí mucho con esta experiencia.