ruby-on-rails - 用户会话的逻辑
问题描述
user_signed_in?
方法来自设计 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
的额外链接。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 %>
推荐阅读
- google-apps-script - Google Suite - Apps Script - 通过 API 将幻灯片下载为 PNG 文件
- java - 是否有任何基于静态上下文的标准 Java 依赖注入 API?
- docker - 使用 docker-compose 在端口 9100 上无法访问 Prometheus Nodeexporter
- python - 如何改进我的 HTML 代码并在 PHP 中触发 python onclick 按钮
- c - 在 arm-none-eabi-gcc 中使用显式字节顺序进行复制的优化
- python-3.x - Python Tkinter,如何使用实时数据更新表?
- sql - 如何将映射表中的几行汇总到列中?
- python - 如何解决“未定义符号:av_top_index
- python - 使用正则表达式从字符串中删除括号
- python-3.x - Selenium 试图遍历一个表,但现在卡在第一个表上