お世話になっております。
題目にある通りなのですが、それに対して質問をさせていただきます。
まず、削除ボタンを以下のように書きました。
・削除ボタン
<% if current_user == micropost.user %> <%= link_to "Delete", micropost, method: :delete, data: { confirm: "You sure?" }, class: 'btn btn-danger btn-sm' %> <% end %>
念のために削除ボタンを含めたページの全容を載せておきます。
・_micropost.html.erbファイル
<ul class="list-unstyled"> <% microposts.each do |micropost| %> <li class="media mb-3"> <img class="mr-2 rounded" src="<%= gravatar_url(micropost.user, { size: 50 }) %>" alt=""> <div class="media-body"> <div> <%= link_to micropost.user.name, user_path(micropost.user) %> <span class="text-muted">posted at <%= micropost.created_at %></span> </div> <div> <p class="mb-0"><%= micropost.content %></p> </div> <div> <% if current_user == micropost.user %> <%= link_to "Delete", micropost, method: :delete, data: { confirm: "You sure?" }, class: 'btn btn-danger btn-sm' %> <% end %> </div> </div> </li> <% end %> <%= paginate microposts %> </ul>
また、コントローラのdestroyアクションは以下の通りです。
・micropost#destroy
def destroy @micropost.destroy flash[:success] = 'メッセージを削除しました。' redirect_back(fallback_location: root_path) end
before_actionは以下の通りです。
before_action :correct_user, only: [:destroy]
・correct_userメソッド
def correct_user @micropost = current_user.microposts.find_by(id: params[:id]) unless redirect_to root_url end end
以上のコードで投稿を削除したら、ページがリロードされている感じはありますが削除されずにホーム画面に戻ってしまいます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/09 04:26