我们有一个带有以下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)对的重复请求。我们可以阻止用户多次点击图书按钮,但我们希望获得额外的保护。我们不希望手上有重复的费用。
我们如何能够执行这样的事情?谢谢!
答案 0 :(得分:0)
您可以使用关联的数据库表创建名为Booking
的新模型,然后在发生此发布请求时创建新的预订。为了确保不存在先前的预订,您可以像这样验证模型中的唯一性:
validates_uniqueness_of :user_id, :scope => :class_id
如果在控制器中创建预订失败,那么您知道预订已经存在并且可以返回相应的消息。