0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Railsでのユーザー削除の実装方法

Last updated at Posted at 2024-09-19

はじめに

この記事では、Railsでユーザーを削除する方法について紹介します。
追加で削除時に確認ダイアログを表示させ、削除が成功したかどうかを通知する仕組みも紹介します。

1. ルーティング設定

config/routes.rb ファイルで、destroy アクションに対応するルートを設定します。

resources :users, only: [:index, :show, :destroy]

2. コントローラーの実装

まず、削除処理はコントローラーの destroy アクションで行います。削除が成功した場合には一覧画面へリダイレクトし、失敗した場合には個別詳細画面にリダイレクトしてエラーメッセージを表示します。

def destroy
  if @user.destroy
    redirect_to users_path, notice: 'ユーザー情報が正常に削除されました'
  else
    redirect_to user_path, alert: '削除に失敗しました'
  end
end

補足
@user.destroy: 該当のユーザー (@user) を削除します。
redirect_to: 削除後のリダイレクト先を指定し、成功時には通知メッセージ (notice) を、失敗時にはエラーメッセージ (alert) を表示します。

3. ビューで削除ボタンを追加

削除ボタンをビューに追加し、削除リクエストを送信します。ここでは、削除ボタンを押した瞬間削除されるのは少々怖いと思いますので、削除する前に確認ダイアログを表示させ、誤削除を防止します。

.actions
  = link_to 'ユーザーの削除', user_path(@user), method: :delete, data: { turbo_method: :delete, turbo_confirm: '本当に削除しますか?' }, class: 'delete-button'

補足
method: :delete: 削除リクエストを送信します。
data: { turbo_confirm: '本当に削除しますか?' }: ユーザーに削除確認のダイアログを表示します。
class: 'delete-button': ボタンのスタイルを編集するためのクラスを追加しています。

4. まとめ

以上のコードを使用することで、Railsアプリケーションでユーザーを削除する機能を簡単に実装できます。確認ダイアログを使用することで、ユーザーの誤操作を防ぐことができ、ユーザー体験を向上させることができます。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?