#はじめに
ここではRailsにおいて削除機能を実装するときに必要な
手順について書いておきたいと思います。
##実装手順
まずは機能の実装ということで,ルーティング、コントローラー、ビューのそれぞれに削除のための定義をしている必要がある。
今回は処理の流れ順でコーディングしていく。
ここで削除の際の処理を整理すると
①あるビューで削除ボタンが実行される
②削除ボタンに設定されているルーティングが読まれる
③ルーティングに従い、コントローラーが呼ばれ、アクションが
実行され、対象のデータが削除される。
④アクションの処理が終了したことで、ビューファイルが呼ばれる。
ここでのビューは削除完了を表示するビューとする。
###削除ボタン作成
そのためまずは削除ボタンの作成をする。
作成にはビューファイルの任意の箇所にlink_toメソッドを使っていく。
以下記述例
<%= link_to '削除', "/tweets/#{tweet.user_id}", method: :delete %>
###ルーティング
データの削除を行う場合にはHTTPメソッドのうちの1つ、 deleteメソッドを使用する。
ルーティングファイルには以下のように
deleteメソッドを使ったルーティングを定義する
以下記述例
delete 'tweets/:id' => 'tweets#destroy'
###コントローラー
コントローラーではルーティングで定義したdestroyアクションについてに処理を定義していく。
以下記述例
def destroy
tweet = Tweet.find(params[:id])
if tweet.user_id == current_user.id
tweet.destroy #destroyメソッドを使用し対象のツイートを削除する。
end
end
###削除完了のビューファイル作成
destroyアクションの処理後のビューファイルを作成する。
ビューファイルに削除完了を表示するためのコードを記述する。
以下記述例
<div class="contents row">
<div class="success">
<h3>
削除が完了しました。
</h3>
<a class="btn" href="/">投稿一覧へ戻る</a>
</div>
</div>