user_signed_in?
方法来自设计Gem。如果用户已登录并且有评论,我希望显示Delete Comment
链接。如果没有评论,我希望该链接不存在。 Sample of show page。
代码如下:
<% if user_signed_in? %>
<p><%= link_to 'Delete Comment', [comment.pic, comment], method: :delete, class: "btn btn-danger", data: { confirm: "Are you sure?" } %></p>
<% end %>
我在显示页面的逻辑上遇到了一些麻烦。如果用户已登录,则即使没有评论,也会显示Delete comment
链接。而且,如果我发表评论,则Delete Comment
链接将出现在每个评论的下方,并带有一个额外的Delete Comment
链接,该链接未链接到任何特定评论。
请帮助。
答案 0 :(得分:0)
显示删除链接,因为您没有测试注释的存在。您可以执行类似添加空白评论或是否存在评论的测试:
<% if user_signed_in? && comment[:body].present?>
<p><%= link_to 'Delete Comment', [comment.pic, comment],
method: :delete, class: "btn btn-danger",
data: { confirm: "Are you sure?" } %></p>
<% end %>