2013-09-26 13 views
0

우리는이 호출에서 다음과 같은 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를 가지고, 우리는 클래스를 예약 할 수있는 써드 파티 API에 요청을 보냅니다. 문제는 (user_id, class_id) 쌍에 대한 중복 요청이 보내지지 않도록하려는 것입니다. 사용자가 도서 버튼을 여러 번 클릭하는 것을 방지 할 수 있지만 추가 보호 수준을 원합니다. 우리는 우리 손에 중복 청구를 원하지 않습니다.

우리가 어떻게 이런 식으로 시행 할 수있는 아이디어가 있습니까? 감사!

답변

0

연결된 데이터베이스 테이블과 함께 Booking이라는 새 모델을 만든 다음이 게시물 요청이 발생할 때마다 새 예약을 만들 수 있습니다. 더 이전의 예약이 없는지 확인하려면, 당신과 같이 모델의 고유성을 확인할 수 있습니다

validates_uniqueness_of :user_id, :scope => :class_id 

예약을 생성하는 컨트롤러에 실패하면

, 당신은 예약이 이미 존재하는 것을 알고 그에게 메시지를 반환 할 수 있습니다 효과.