用户会话的逻辑

时间:2018-11-28 02:23:27

标签: ruby-on-rails ruby

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链接,该链接未链接到任何特定评论。

请帮助。

1 个答案:

答案 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 %>