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は、設定されているルーティングを確認するためのコマンドのこと