はじめに
プログラミング初学者の者です。オンラインでプログラミングを学習させて頂いてるのですが、さらに理解を深めていきたいと思い、学習したことを備忘録として、残して理解を深めていきたいと思います。
また、間違った点など、ありましたら、ご指摘いただけると幸いです。よろしくお願いします。
コメント削除ボタンをコメントしたユーザーのみ表示させるには。
現状下記の状態では全ユーザーに削除ボタンが現れてしまい、削除できる状態でした。
app/views/recipes/show.html.erb
<div class="recipe-comments">
<% @comments.each do |comment| %>
<div class="comments_list">
<div class="comments-title">
<%= comment.user.user_name %>さんの投稿
</div>
<%= comment.content %>
<%=link_to "削除", recipe_comment_path(comment.recipe,comment), method: :delete %>
</div>
<% end %>
<%= form_with model: [@recipe, @comment], local: true do |f| %>
<div class = 'form-group'>
<%= f.text_area :content, class: "form-control", id:"comment_content", placeholder: "コメントを記入してください" %>
</div>
<%= f.submit "コメントする", class: "btn btn-primary" %>
<% end %>
</div>
if文で条件分岐させます
app/views/recipes/show.html.erb
<div class="recipe-comments">
<% @comments.each do |comment| %>
<div class="comments_list">
<div class="comments-title">
<%= comment.user.user_name %>さんの投稿
</div>
<%= comment.content %>
<% if current_user == comment.user %> ###←追記
<%=link_to "削除", recipe_comment_path(comment.recipe,comment), method: :delete %>
<% end %> ###←追記
</div>
<% end %>
<%= form_with model: [@recipe, @comment], local: true do |f| %>
<div class = 'form-group'>
<%= f.text_area :content, class: "form-control", id:"comment_content", placeholder: "コメントを記入してください" %>
</div>
<%= f.submit "コメントする", class: "btn btn-primary" %>
<% end %>
</div>
削除ボタンのlinkの部分に「<% if current_user == comment.user %> 」
現在ログインしているユーザーとコメントしたユーザーが一致した場合、表示させる分岐を行います。