Ruby on Rails (PicTweet) ツイートを削除編
削除昨日はdestroyが該当する。
実装の流れは以下の通り
1ツイートを削除するためのルーティングを設定
2削除ボタンをビューに追加
3destroyアクションをコントローラーに定義
4削除後のビューの追加
ルーティングの設定
resourcesに:desrtoyを追加して、destroyアクションのルーティングを設定した
次にlink_toメソッドを使用し、削除ボタンを追加した。削除するツイートを区別するために、削除ボタンのぱすにはツイートのIDをパラメーターをもたせる。具体的には/tweets/<<tweetのid>>というぱすにすると、パラメーターとして受けとることができる
HTTPメソッドは、DELETEとし、methodオプションにシンボルで:deleteとするだけ。
今回、destroyアクションは、ツイートを削除するだけで、ビューにツイート情報を受け渡す必要はない。そのため、インスタンス変数ではなくただの変数として置き、destroyメソッドを使用する
def destroy
tweet = Tweet.find(params[:id])
tweet.destroy
end
あとはルーティングとコントローラーの編集が終わったから、最後にビューファイルの追加と編集を行う。これは「削除完了画面」 を作成する。
<div class="contents row">
<div class="success">
<h3>削除が完了しました</h3>
<a class="btn" href="/">投稿一覧に戻る</a>
</div>
</div>
destroyアクションは、ツイートを削除を行うアクションのこと
DELETEはdestroyアクションを動かす際に指定するメソッド
rails routesは、設定されているルーティングを確認するためのコマンドのこと