はじめに
この記事では、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アプリケーションでユーザーを削除する機能を簡単に実装できます。確認ダイアログを使用することで、ユーザーの誤操作を防ぐことができ、ユーザー体験を向上させることができます。