La siguiente línea de código:problemas para insertar unos rieles parciales utilizando jQuery
$("#comments_<%[email protected] %>").append("<%= escape_javascript(render :partial => 'posts/comment', :locals => { :comment => @comment }) %>");
se supone que es un instert parcial como html dentro de la etiqueta div coments_xx. lo que está sucediendo es que el contenido del parcial se inserta pero no se interpreta como html, quiero decir, en lugar de insertar un comentario con su formato correcto que veo todo el código en la página web:
Ejemplo (esto es cómo se inserte en la página web):
1 Comment
<div id=comment_5_34> <span class=dateandoptions> Posted less than a minute ago<br/>
<a href=/comments/34/5 data-method=post data-remote=true rel=nofollow>Deletea> span>
<p><b>otra pruebab> wrote:p> <br/> <p><b> Webpage:b>asss.comp> <br/> <p class=comment-body>heeyeyeyyhep>div>
Thanks for commenting!
Si yo analizo el código JavaScript insertado me sale algo como esto (he usado la extensión Firebug verla):
/* Add the new comment to the bottom of the comments list */
$("#comments_5").append("<div id=comment_5_34> <span class=dateandoptions> Posted less than a minute ago<br/> <a href=/comments/34/5 data-method=post data-remote=true rel=nofollow>Deletea> span> <p><b>otra pruebab> wrote:p> <br/> <p><b> Webpage:b>asss.comp> <br/> <p class=comment-body>heeyeyeyyhep>div>");
Finalmente este es el código de el parcial que estoy insertando:
<div id="comment_<%=comment.post.id%>_<%=comment.id%>">
<span class="dateandoptions">
Posted <%= time_ago_in_words(comment.created_at) %> ago<br/>
<%= link_to 'Delete', {:controller => 'comments', :action => 'eliminar', :id => comment.id, :post_id => comment.post.id}, :method => :post, :remote => true %>
</span>
<p><b><%= comment.user_name %></b> wrote:</p>
<br/>
<% if comment.web_page != nil %> <p><b> Webpage:</b><%= comment.web_page %></p> <% end %>
<br/>
<%= content_tag(:p, comment.contenido, :class => "comment-body") %>
</div>
Espero que podría explicar bien a mí mismo!
gracias de antemano por su ayuda.
Todavía obtengo un método de representación no definido cuando sigo esta sugerencia. Mi ejemplo es bastante similar. ¿Tendría una idea de lo que me podría estar perdiendo? La única diferencia entre tu respuesta aquí y la que tengo es el modelo y los nombres parciales. –
Además, la razón por la que estoy probando este método es porque tengo una lista de parciales que creo usando un ruby incrustado en cada ciclo en los elementos actuales. Mi objetivo es agregar un objeto recién creado al enviarlo a la lista actual sin volver a cargar la página. ¿Sabes si hay una forma de actualizar ese rubí en particular en cada ciclo? Eso probablemente requeriría una llamada ajax, pero pensé que sería fácil hacer algo como esto: '$ (" # activeTab "). Append (" <% = escape_javascript ("# {render: partial => 'groups/thing) -list-row ',: locals => {: t => Thing.order (: created_at) .last}} ")%>"); ' –
Para referencia futura de personas que encuentran este hilo buscando respuestas: una razón común para obtener un "método indefinido" en el renderizado es que está usando renderizar en un archivo dentro/assets en lugar de app/views. – Steve