2008-09-22 2 views

답변

12

레일즈가 99 %의 경우를 처리합니다. 비 시각적으로 Edit 액션은 Show 액션과 거의 비슷하기 때문에 편집 액션에서 XML 또는 JSON 번역을 수행 할 필요는 거의 없습니다. 응용 프로그램의 모델을 업데이트 할 비 시각적 클라이언트는

GET /my_models/[:id].xml (Show) 

그런 다음 이런 식으로 컨트롤러를 호출 할 수

PUT /my_models/[:id].xml (Update) 
에 결과를 어떤 변환이나 편집 및 사후을 (또는 넣어) 할 수있는 클라이언트 응용 프로그램

GET /my_models/[:id]/edit 

을 그리고 그것은 인간의 사용을위한 것입니다 : 당신이 호출 할 때 일반적으로 그 일을하는

표시 동작의 편집 가능한 양식을 얻을 수 있습니다. 99 %의 시간, 즉. Edit 액션에서 데이터를 변형하는 것은 드문 일이기 때문에, Rails는 사용자가 가고 있지 않다고 가정하고, 비계에서 respond_to를 떠나 코드를 삭제합니다.

+0

나는 그것을 이해합니다. 그러나 새로운 작업에 대한 respond_to 블록이 있습니다. 새로운 논쟁에도 같은 주장이 적용되지 않을까요? –

+1

"new"동작은 기본 필드가 채워진 객체를 제공합니다. 비 시각적 클라이언트 또는 HTML 화면에서 "create"액션에 게시 할 때 사용합니다. – Pete

+0

그리고 Ryan이 대답을 지적한 것처럼 New 액션은 비주얼 한 클라이언트에서 모델을 채울 때 사용할 수있는 XML 템플릿을 반환합니다. 잘 했어, 라이언. – Pete

1

편집 동작이 HTML 에서만 호출되기 때문에 편집 양식을 XML 컨텍스트에서 반환 할 필요가 없습니다. REST를 사용하면 간단하게 전화를 걸어 관련 정보로 직접 업데이트 할 수 있습니다.

2

다소 관련이 있습니다. 어떤 사람들은 왜 새로운 행동을위한 비계가 여전히 respond_to 블록을 가지고 있는지 궁금해 할 것입니다. 편집 동작은 그렇지 않습니다. 이는 다음과 같은 요청이 있기 때문에 발생합니다.

GET /my_models/new.xml 

... 새 모델을 만드는 데 사용할 수있는 XML 템플릿이 반환됩니다.

관련 문제