2013-10-13 6 views
0

현재 관리자로부터 양식 데이터의 유효성을 검사하는 응용 프로그램을 작성 중입니다.CRUD 양식 유효성 확인

지금까지 내가이 할 수있는 두 가지 옵션을 가지고 볼 수 있습니다 : 새로운 카테고리

을 만들

GET /admin/category/new 존재하는 HTML 양식 같은 URL에

GET 및 POST 요청을 POST /admin/category/new 여기 POST가 유효하다면 유효성 검사를 통과 할 때까지 제출 된 데이터와 관련 오류가있는 을 따라 HTML 양식을 다시로드합니다. 그러나 사용자가 새로 고치면 브라우저에서 데이터를 다시 보내달라고 요청합니다. 다른 편안하고 URL을 현재

GET /admin/category/new HTML 양식에

GET과 POST는 새로운 카테고리

POST /admin/category를 만들 수있는 것이라고 할 수 핸들 PUT뿐만 아니라 DELETE 요청. 유효성 검사가 실패하고 사용자가 GET /admin/category/new으로 다시 리디렉션되면 세션 플래시에서 오류와 이전 입력을 모두 유지해도됩니까? 사용자가 여러 브라우저 창에서 여러 수정 사항을 제출하면 어떻게됩니까? 이전 입력이 올바른 양식에 첨부되었는지 어떻게 확인합니까?

내가 묻는 주된 이유는 Magento 또는 WordPress의 여러 항목을 업데이트 할 때 다른 창 업데이트와 관련된 하나의 창에 여러 개의 플래시 메시지 대기열이있을 때입니다. 그래서 어떤 옵션이 최고입니까? 또는 유지하기 쉬운가?

+0

[사용자가 POST 데이터를 다시 보내지 않고 POST 후 브라우저 창을 다시로드] 가능한 복제본 (http://stackoverflow.com/questions/4869721/reload-browser-window-after-post-without-prompting-user-to -resend-post-data) – Gajus

답변

0

POST-redirect-GET 디자인 패턴을 사용하는 것이 좋습니다.

POST-Redirect-GET 또는 GET-After-POST는 웹 서버가 HTTP POST 요청 처리를 완료 한 직후 웹 브라우저가 페이지로 리디렉션되는 일부 웹 응용 프로그램에서 사용되는 디자인 패턴입니다. 이렇게하면 사용자가 양식을 다시 제출하지 않고도 페이지를 새로 고치거나 페이지를 다시 탐색하도록하여 양식을 제출 한 후에 유용성을 향상시킬 수 있습니다.

개인적으로이 코드는 더 깨끗한 코드로 이어지고 유지 관리가 더 쉽습니다.

+0

확인을 실패했지만 양식을 다시 채우는 데 실패한 데이터를 저장할 위치는 어디입니까? 세션을 충분히 사용하고 있거나 여러 개의 요청으로 인해 n 개의 요청에서 요청 데이터를로드 할 수 있습니다 (예 : n + 1). – user2856585

+0

양식 처리가 성공한 후에 만 ​​리디렉션하는 것을 선호합니다. 세션이 필요하지 않습니다. 그렇게하면 저장되지 않은 게시 된 데이터로 양식을 쉽게 채울 수 있습니다. –

+0

아, Ruby on Rails 라우팅을 반영하는 두 번째 패턴보다는 첫 번째 옵션과 'POST'를 같은 URL에 사용합니다. – user2856585