今回のtask
• 記事削除の API とテストの実装を行いましょう。
1. このTaskでやろうとしていること
- 何をやる?
- DELETE /api/v1/articles/:id で指定した記事を削除できるようにする
- 投稿者本人(current_user)の記事だけ削除できるようにする(権限チェック)
- 削除成功時は 204 No Content を返す
- なぜやる?
- 記事投稿アプリとして、投稿した記事を削除できるようにするため
- 他人の記事を勝手に削除できないようにするため
2. 処理の流れ
- クライアントから記事削除リクエストが来る(DELETE /api/v1/articles/:id)
- ルーティングにより ArticlesController の destroy アクションが呼ばれる
- URLに含まれる :id を params[:id] として受け取り、Article.find(params[:id]) で対象の記事をDBから探す
- 記事の投稿者(article.user)と current_user を比較して、投稿者本人かチェックする
- 本人でなければ 403 Forbidden(「権限がありません」)を返して処理を終了する(return)
- 本人なら article.destroy(または destroy!)で削除を実行する
- 削除に成功したら 204 No Content を返す(本文は返さない)
- (例外)記事が見つからない場合は ActiveRecord::RecordNotFound を rescue して、404(「記事が見つかりません」)を返す
3. 今回触ったファイル
- app/controllers/api/v1/articles_controller.rb
4. 重要コード