Help us understand the problem. What is going on with this article?

Rails 削除機能の実装方法 手順

More than 1 year has passed since last update.

はじめに

ここではRailsにおいて削除機能を実装するときに必要な
手順について書いておきたいと思います。

実装手順

まずは機能の実装ということで,ルーティング、コントローラー、ビューのそれぞれに削除のための定義をしている必要がある。

今回は処理の流れ順でコーディングしていく。
ここで削除の際の処理を整理すると
①あるビューで削除ボタンが実行される
②削除ボタンに設定されているルーティングが読まれる
③ルーティングに従い、コントローラーが呼ばれ、アクションが
実行され、対象のデータが削除される。
④アクションの処理が終了したことで、ビューファイルが呼ばれる。
ここでのビューは削除完了を表示するビューとする。

削除ボタン作成

そのためまずは削除ボタンの作成をする。
作成にはビューファイルの任意の箇所にlink_toメソッドを使っていく。
以下記述例

index.html.erb
<%= link_to '削除', "/tweets/#{tweet.user_id}", method: :delete %>

ルーティング

データの削除を行う場合にはHTTPメソッドのうちの1つ、 deleteメソッドを使用する。
ルーティングファイルには以下のように
deleteメソッドを使ったルーティングを定義する

以下記述例

routes.rb
delete 'tweets/:id' => 'tweets#destroy'

コントローラー

コントローラーではルーティングで定義したdestroyアクションについてに処理を定義していく。

以下記述例

tweets_controller.rb
def destroy
 tweet = Tweet.find(params[:id])
  if tweet.user_id == current_user.id
   tweet.destroy #destroyメソッドを使用し対象のツイートを削除する。
  end
end

削除完了のビューファイル作成

destroyアクションの処理後のビューファイルを作成する。

ビューファイルに削除完了を表示するためのコードを記述する。

以下記述例

destory.html.erb
<div class="contents row">
    <div class="success">
      <h3>
        削除が完了しました。
      </h3>
      <a class="btn" href="/">投稿一覧へ戻る</a>
    </div>
</div>
STHEXA
社会人3年目。25歳。新しいもの好き。筋トレ(エニタイム会員)、コーヒー、資産運用に興味あり。ユーザ系sier企業からweb系企業に転職するためプログラミング学習中🤓プログラミングで学んだことを中心に書いていきます。メモ感覚で使おうと思います。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away