Esta es la imagen de mi problema ---> Duplicar imagen de eliminación de enlaces

Tengo un comentario con dos enlaces de eliminación.

Este es el orden de cómo estoy representando el formulario de comentarios y los comentarios de parciales:

<h2>Comments</h2>
<%= render 'comments/form' %>
<%= render @recipe.comments %>

Este es el código para _form.html.erb

<%= form_for([@recipe, @recipe.comments.build]) do |f| %>
     <p><%= f.label 'Comment' %> <br> <%= f.text_area :comment %></p>
     <p><%= f.submit 'Post' %></p>
<% end %>

Este es el código para _comment.html.erb

<div class="show-text-formatting">
     <p><strong><%= comment.name %></strong></p>
     <p><%= comment.comment %></p>

     <%= link_to 'Delete', [comment.recipe, comment], method: :delete, 
           data: { confirm: 'Are you sure want to delete this comment?' } %>
</div>

El primer enlace de eliminación tiene la extensión: / recetas / 10 / comentarios / 1 (1 es el número de identificación del comentario)

Además, cuando paso el mouse sobre el segundo enlace de eliminación tiene la extensión: / recetas / 10 / comentario

La diferencia es que la segunda extensión del enlace de eliminación no tiene una identificación de comentario

Sé que al cambiar el orden de

    <h2>Comments</h2>
    <%= render 'comments/form' %>
    <%= render @recipe.comments %>

Para

    <h2>Comments</h2>
    <%= render @recipe.comments %>
    <%= render 'comments/form' %>

Resolvería mi problema, pero quiero que el formulario aparezca antes de los comentarios.

Editar:

El segundo enlace de eliminación no es en realidad un "segundo" enlace de eliminación. Es un enlace de eliminación para un objeto nulo. Sin embargo, todavía no sé cómo deshacerme de él.

0
chataolauj 27 abr. 2017 a las 10:43

2 respuestas

La mejor respuesta

Prueba esto. Establezca un orden para sus comentarios. Me gusta esto:

<h2>Comments</h2>
<%= render 'comments/form' %>
<%= render @recipe.comments.order(created_at: :DESC) %>

Eso debería arreglar tu problema. Tuve el mismo problema y funcionó para mí.

0
Steve Carey 27 abr. 2017 a las 07:50

Si sabe con certeza que es un objeto nulo, ¿por qué no agrega un disparador? Quiero decir que podemos verificar si el objeto es nulo o no antes de renderizar.

-1
Will Nguyen 27 abr. 2017 a las 07:56