2012-08-13 4 views
0

사용자가 두 개 이상의 화면을 작성해야만 등록 할 수있는 레일스 앱을 작성 중입니다. 등록 데이터는 두 개의 테이블에 두 개 또는 세 개의 레코드로 분산됩니다.부분 등록 정리하기

물론 사용자는 등록이 완료되기 전에 탈옥 할 수 있습니다. 이것은 필수 열의 Null 항목으로 감지 할 수 있습니다.

일부 지연 (몇 시간) 후에 부분적으로 완료된 등록을 정리하는 "레일스 웨이"란 무엇입니까?

차이가 나는 경우, 나는 Heroku에 배치하고 있습니다.

답변

2

"레일 방식"인지 모르겠지만 rake 작업을 생성하고 cron job을 통해 규칙적인 간격으로 실행하는 것은 아마도 사용자가 설명하는 내용으로 충분할 것이라고 생각합니다. 테스트를 진행중인 경우 다른 코드와 마찬가지로 test the rake tasks도 가능합니다.

+0

감사합니다. 나는 지금 Heroku가 이것을 위해 완벽한 레이크 작업 스케쥴러를 가지고 있음을 보았습니다. – Gene

2

"진행중인"사용자를위한 별도의 테이블이 있다고 생각하십니까? 그런 다음 그것을 잘게 썰어 끝내면 주위에 퍼뜨려 라.

그러면 진행중인 테이블에서 하루가 지난 update_at 인 항목을 삭제하여 버려진 사용자를 정리할 수 있습니다. 레이크 작업을 실행하는 일일 크론 작업 (또는 스케줄러 또는 ...)이이를 처리 할 수 ​​있습니다. 또한 사용자가 마치기 전까지는 실제로 사용자가 아니기 때문에 로그인 할 때까지 로그인 할 수 없습니다.

부작용으로 끝날 때까지 실제 사용자가 아니기 때문에 로그인 할 때까지 로그인 할 수 없습니다. 물론 컨트롤러 하나 안에서 current_user 처리를 조정해야 할 수도 있습니다.

이런 종류의 접근법은 추가 편집증 수준으로 NOT NULL 제약 조건을 필수 열에 추가 할 수 있음을 의미합니다.

+0

감사. 내 등록은 복잡하고 3 개의 테이블에 걸쳐 있습니다. 따라서 불완전한 reg를 식별하는'delete' 쿼리를 포함하는 레이크 작업을 하루 이상 지난 "마지막 터치"시간으로하는 것이 더 합리적입니다. 다른 설정에서 당신의 정답이 될 수 있습니다. – Gene