0

次の API 呼び出しを持つ Rails API があります。

POST /book
  user_id (integer): The user id to book the class for
  class_id (integer): The id of the class to book

この呼び出しでは、クラスを予約するためにサードパーティ API にリクエストを送信します。問題は、(user_id, class_id) ペアの重複するリクエストが送信されないようにすることです。ユーザーが本のボタンを複数回クリックするのを防ぐことはできますが、その追加レベルの保護が必要です。重複した請求はしたくありません。

このようなことを強制する方法はありますか? ありがとう!

4

1 に答える 1

0

Booking関連するデータベース テーブルで呼び出される新しいモデルを作成し、このポスト リクエストが発生するたびに新しい予約を作成できます。以前の予約が存在しないことを確認するには、次のようにモデルの一意性を検証できます。

validates_uniqueness_of :user_id, :scope => :class_id

コントローラーで予約の作成が失敗した場合、予約が既に存在することがわかり、その旨のメッセージを返すことができます。

于 2013-09-26T05:15:08.107 に答える