La seguente riga di codice:problemi nell'inserimento di un rotaie parziali utilizzando jQuery
$("#comments_<%[email protected] %>").append("<%= escape_javascript(render :partial => 'posts/comment', :locals => { :comment => @comment }) %>");
dovrebbe instert un parziale come HTML all'interno del tag div coments_xx. quello che succede è che il contenuto del partial è inserito ma non interpretato come html, cioè, invece di inserire un commento con il suo giusto formato vedo l'intero codice nella pagina web:
Esempio (questo è come esso inserirlo nel sito):
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!
Se ho analizzare il codice javascript inserito ottengo qualcosa di simile (ho usato l'estensione firebug per vederlo):
/* 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>");
Infine questo è il codice di il parziale che sto inserendo:
<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>
Spero di potermi spiegare bene!
grazie in anticipo per il vostro aiuto.
Sto ancora ottenendo un rendering di un metodo non definito quando seguo questo suggerimento. Il mio esempio è abbastanza simile. Avresti un'idea di cosa potrei mancare? L'unica differenza tra la tua risposta qui e quello che ho è il modello e nomi parziali. –
Inoltre, il motivo per cui sto provando questo metodo è perché ho un elenco di partial che creo usando un ruby incorporato ogni loop sugli elementi correnti. Il mio obiettivo è quello di aggiungere un oggetto appena creato alla submission alla lista corrente senza ricaricare la pagina. Sai se c'è un modo per aggiornare quel particolare rubino ogni ciclo? Probabilmente richiederebbe una chiamata ajax, ma ho pensato che sarebbe stato facile fare qualcosa del genere: '$ (" # activeTab "). Append (" <% = escape_javascript ("# {render: partial => 'groups/thing -list-row ',: locals => {: t => Thing.order (: created_at) .last}} ")%>"); ' –
Per riferimenti futuri di persone che trovano questo thread alla ricerca di risposte: un motivo comune per ottenere "il metodo non definito" sul rendering è che stai utilizzando il rendering in un file all'interno di/assets piuttosto che in app/viste. – Steve