2010-01-16 4 views
1

그래서 사용자가 동시에 새 계정을 만들고 월간 요금제에 가입하는 가입 양식이 있습니다.레일 : 생성시 오류가있을 때 데이터를 처리하는 방법

사용자 이름, 이메일, 비밀번호 및 모든 일반 신용 카드/청구 정보를 입력합니다.

하지만 문제는 내가 실수로 잘못된 신용 카드 번호를 입력했다는 것입니다.이를 처리하는 가장 좋은 방법은 무엇입니까?

타사 결제 서비스의 데이터베이스 행 ID를 가질 수 있도록 먼저 사용자 계정을 만들어야하지만 사용자가 내 create 메서드에서 하나의 급습로 처리 한 모든 문제가 있으므로 사용자가 자신의 카드 정보를 다시 제출하면 사용자 계정이 실제로 이미 생성되었으므로 계정이 이미 있음을 알립니다.

여기 질문은 어떻게 처리할까요? 결제 데이터에만 오류 페이지를 표시 하시겠습니까? 아니면 또 뭐야? 이 문제를 처리하는 가장 좋은 방법은 무엇인지 잘 모르겠다.

답변

0

결제 서비스 확인에 실패하면 새로 만든 사용자 계정을 삭제하는 것이 가장 좋습니다. (created_at 수 있습니다 시간 초과 감지에 도움).

이 메커니즘은 database transactions을 통해 구현되며 Rails에서는 많은 노력을 기울이지 않습니다. 그러나 데이터베이스에서 독점적 인 잠금 기능을 사용하고 있지 않은지 확인하십시오. 내 의견

0

, 당신은 두 가지 방법으로

1) 모든 것이 성공적으로 확인 된 후에 데이터 만 저장이 처리 할 수 ​​있습니다. 사용자 정의 유효성 검사를 사용하여 신용 카드를 확인할 수 있습니다. 는 snippets.dzone.com/posts/show/5266가

2) (실제로 이 http://blogs.law.harvard.edu/lianaleahy/2008/05/19/find_or_create/

참조) 하나 개의 모델로도 find_or_create 사용할 수있는 두 가지 모델 (사용자 및이 credit_cards 사용) find_or_create 사용을 참조하십시오
관련 문제