Posted at

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


はじめに

ここでは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>