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 回答