这是我的问题的图片---> Duplicate Delete Links Picture
我有两条删除链接的评论。
这是我如何呈现评论表格和部分评论的顺序:
<h2>Comments</h2>
<%= render 'comments/form' %>
<%= render @recipe.comments %>
这是 _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 %>
这是 _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>
第一个删除链接的扩展名为: / recipes / 10 / comments / 1(1为注释ID#)
另外,当我将鼠标悬停在第二个删除链接上时,扩展名为: / recipes / 10 / comment
之间的区别在于第二个删除链接的扩展程序不具有评论ID
我知道通过切换
的顺序 <h2>Comments</h2>
<%= render 'comments/form' %>
<%= render @recipe.comments %>
到
<h2>Comments</h2>
<%= render @recipe.comments %>
<%= render 'comments/form' %>
会解决我的问题,但我希望表单在评论之前出现。
第二个删除链接实际上不是“第二个”删除链接。它是null对象的删除链接。我仍然不知道如何摆脱它。
答案 0 :(得分:0)
试试这个。为您的评论设置订单。像这样:
<h2>Comments</h2>
<%= render 'comments/form' %>
<%= render @recipe.comments.order(created_at: :DESC) %>
那应该可以解决你的问题。我有同样的问题,它对我有用。
答案 1 :(得分:-1)
如果您确定它是无对象,为什么不添加触发器。我的意思是我们可以在渲染之前检查对象是否为零。