Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用户会话逻辑_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 用户会话逻辑

Ruby on rails 用户会话逻辑,ruby-on-rails,ruby,Ruby On Rails,Ruby,user\u signed\u in?方法来自designe Gem。如果用户已登录,并且有评论,我希望显示Delete comment链接。如果没有评论,我希望链接不在那里 代码如下: <% if user_signed_in? %> <p><%= link_to 'Delete Comment', [comment.pic, comment], method: :delete, class: "btn btn-danger", data: { confirm

user\u signed\u in?
方法来自designe Gem。如果用户已登录,并且有评论,我希望显示
Delete comment
链接。如果没有评论,我希望链接不在那里

代码如下:

<% 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
链接,没有链接到任何特定的评论


请提供帮助。

显示删除链接,因为您没有测试评论是否存在。您可以为空注释添加测试,或者如果存在注释:

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


那么,如果您的问题中有注释条件,
在哪里?这就是我的问题所在。我不知道我会如何添加这种逻辑。好吧,你会在每条评论下面看到这个链接,因为如果你没有看到,你会单击delete_comment,而不会告诉应用程序你真正想针对哪个评论。当然,除非你是说删除你的评论。您必须在comments控制器中编写该方法。@Aaron我可以在每个注释下面使用delete comment链接。这就是我想要的。问题是,即使没有注释,删除注释链接仍会出现。我尝试使用该链接,得到了一个
未定义的方法“empty”
如果用户登录,它应该是
&&comment.present?
仍然得到相同的结果。comment是什么?对象还是字符串?你能把代码发布到定义它的地方吗?@Jenstretman它是在我的评论中定义的对象。\u controller
@comment=@pic.comments.create(params[:comment].permit(:name,:body))