タスク内容

1. このTaskでやろうとしていること


2. 処理の流れ

  1. クライアントから記事更新リクエストが来る(PATCH /api/v1/articles/:id)
  2. ルーティングにより ArticlesController の update アクションが呼ばれる
  3. URLに含まれる :id を params[:id] として受け取り、Article.find(params[:id]) で対象の記事をDBから探す
  4. 記事の投稿者(article.user)と current_user(ログインしているuser) を比較して、投稿者本人かチェックする
  5. 本人でなければ 403 Forbidden(「権限がありません」)を返して処理を終了する(return)
  6. 本人なら article.update(article_params) で更新を試みる(article_params は許可した項目のみ)
  7. 更新に成功したら、更新後の記事を serializer で整形してJSONで返す(通常200)
  8. 更新に失敗したら(バリデーションなど)、errors と 422 Unprocessable Entity を返す
  9. (例外)記事が見つからない場合は ActiveRecord::RecordNotFound を rescue して、404(「記事が見つかりません」)を返す

3. 今回触ったファイル

app/controllers/api/v1/articles_controller.rb config/rubocop/rspec.yml spec/requests/api/v1/articles_request_spec.rb