2009-09-11 2 views
3

나는 며칠 동안의 열과 하루 동안의 행으로 구성된 html 테이블을 가지고있다. 일반적으로 표시되는 캘린더 날짜 선택기와 비슷한 UI 위젯입니다.잔잔한 URL을 통해 새로운 예약을 만드시겠습니까?

테이블의 특정 셀을 클릭하면 새 예약을 생성 할 날짜와 시간이 선택됩니다.

나는 등이 선택을 표현하기 위해 URL을 사용하여 고려하고

,

http://jupiter.local/reservations/new/2009-09-10/1200/1300 

또는

http://jupiter.local/reservations/new/date/2009-09-10/start-time/1200/end-time/1300 

이 올바른 접근 방식인가?

블로그 글을 편집하는 방법을 보여주는 데 사용 된 명백한 예제를 제외하고는 나머지에 대해서는 약간 읽었지만 아직 얻지 못했습니다. 예 : 블로그/게시물/23/편집

현재 앱으로 놀고있는 동안 양식 입력란을 통해 세부 정보를 입력하지만 날짜 시간 선택 위젯을 사용하면 훨씬 쉽게 사용할 수 있습니다.

(현재) 계획은 사용 가능한 시간 동안 일련의 URL을 렌더링하는 것입니다. 슬롯이 이미 예약되어 있으면 URL이 렌더링되지 않습니다. 물론 입력 값의 유효성을 검사 할 수도 있습니다. 먼저 한 시간짜리 슬롯을 예약 할 수 있다고 가정합니다.

나는 항공사와 같은 웹 사이트가 고유 한 코드로 일련의 URL을 렌더링하는 경향이 있음을 알았습니다. 나는이 고유 ID를 추적하기 위해 세션이 필요하다고 예상한다.

나는 전에 이런 식으로 설계하지 않았기 때문에 접근 방법에 대한 지침을 찾고 있는데, 주로 학습 경험으로 의도되었습니다.

덕분에

+0

1을 업데이트해야합니다. –

답변

3

나는 RESTful 경로를 조금 복잡하게 만들고 있다고 말하고 싶습니다. REST URI는 자원 작업에 중점을 둡니다. 예약은 리소스입니다. 날짜, IMHO, 그렇지 않습니다.

http://jupiter.local/reservations/new/?date=2009-09-10&start-hour=1200&end-hour=1300 

나는 어느 쪽이든에서 POST 방식 (http://jupiter.local/reservations/new)

을 사용하여 보내려고 것,하지만, 컨트롤러는 것입니다 : 그것은 당신이 같은 작업을해야한다, 따라서 대부분 PARAM, 그리고 params [: 예약] [: 날짜], params [: reservartion] [: 시작 시간] 등으로 작업하십시오.

더 간단하게 접근 할 수 있습니다.

그걸로 테이블에 매핑 된 속성을 추측하고 있습니다. 그렇지 않은 경우

attr_accessor :date, :start-hour, :end-hour 

문장을 사용하여 모델의 "가상"속성을 쉽게 만들 수 있습니다.

AJAX (설명에서 사용하고 싶습니다)를 통해이 파일을 보내면 Rails가 인증 문자열을 추가하고 세션 ID를 추가 할 수도 있습니다. 물론 추가한다고 생각할 수도 있습니다. 당신이 더 많은 아이디어가 필요하면

, 광산, 금성, 지구, 화성, 목성과 세드나 수은이라고 :-) 컴퓨터 '목성'을 호출하기위한 질문 :

+0

답장을 보내 주셔서 감사합니다. 나는 이것을 검토하고 며칠 이내에 업데이트를 제공 할 것입니다. –

0

I는 당신이 당신이 올바른 궤도에있어 올바른 HTTP 동사에 컨트롤러 액션을지도로 생각합니다. 내 컨트롤러 중 일부는 모든 동사를 구현하지 않으며 일부 컨트롤러는 동사를 과부하합니다.

나는 단지 new 동작을 좀 더 상황을 알리고 싶다고 생각합니다. 예를 들어 /reservations/new을 매개 변수 사용 여부에 관계없이 설정하려고한다고 가정 해 보겠습니다. 매개 변수가 전달되면 시작 날짜/시간 선택기를 숨기고 값을 hidden field 초 단위로 채울 수 있습니다. 매개 변수가 전달되지 않으면 시작 날짜/시간 선택기가 표시됩니다. 당신은 아마도 같은 컨트롤러 액션 (new)을 사용할 수 있지만, 파라미터를 기반으로 다른 버전의 뷰를 렌더링 할 수 있습니다.

+0

감사합니다. Andy, 나는 그것에 대해 읽고 시도 할 것입니다. –

관련 문제