LoginSignup
1
0

More than 1 year has passed since last update.

destroyアクションの後、マイページにredirectする。

Last updated at Posted at 2022-02-06

はじめに

投稿した記事、イベントなどの削除後、
マイページへのredirectに戸惑ったのでメモがてら記載。
ログインユーザー=current_userとして定義されている事が前提。

環境

Ruby 2.6.8
rails 5.2.6

実装方法

ルーティング

routes.rb
resoueces :events

こうするだけで7つのアクションに対するルーティングを作成してくれます。
個別に書いてもOK。
欲しかったルーティング↓
  DELETE /events/:id(.:format) events#destroy

今回は投稿したイベント情報を削除するのでeventsとしているが、Postsでもなんでも。

viewページ

events/show.html.erb
<%= link_to "/events/#{@event.id}", method: :DELETE do %>
  <button>イベント削除</button>
<% end %>

@eventには今閲覧してるevent情報が定義されている。
そのままDELETEを発射。

controller

events_controller.rb
def destroy
  @event = Event.find(params[:id])
  @event.destroy
  redirect_to mypage_path(id: current_user.id)
end

(mypage_path →  get 'users/:id', to: 'users#show', as: 'mypage' といったルーティングを設定してある。)

パラメーターにくっついている:idで@eventをdestroy(削除)
その後、mypage_pathにログインユーザーのidを渡してあげる。
(今回ここの記法をど忘れして手こずったので、掲載を決意した。)

直接urlを書いても良いが、
わざわざ自分でroutesに設定したpathを使いたい時、
思い出そう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0