2017-11-18 1 views
0

두 개의 컨트롤러가있는 레일 5 API를 만들었습니다. 하나는 다른 배치에 중첩되어 있으므로 새 배치를 만들려면 먼저 템플릿을 만들어 ID를 얻어야합니다. 즉 POST/템플릿 // 배포. 템플릿은 여러 달 동안 절대로 변경해서는 안되는 정적 객체이기 때문에 이런 식으로 만들었지 만, 배포는 매번 새로운 가능성이있는 변화하는 것입니다. 배치는 템플리트로 수행하는 작업이므로 템플리트가 이미 존재하지 않으면 배치를 작성할 수 없습니다.중첩 된 컨트롤러 앞에 새 컨트롤러를 추가하여 사용자가 API에 대한 두 가지 요청을하지 않아도되도록하려면 어떻게합니까?

이 서비스를 사용할 개발자들과 이야기를 나누었고 두 가지 요청을 사용하여 배포를해야한다는 불만을 제기했습니다. 나는 나의 디자인을 주장했지만, 나는 그들을 설득하지 못했다. 나는 그 조직의 후배이며, 나는 그들이 원하는대로 할 수있는 힘이 없습니다.

따라서 QuickDeployment라는 세 번째 컨트롤러를 만들어 템플릿과 배포에 대한 params가 포함 된 params 해시를 허용해야합니다. 템플리트가 이미 존재하는 경우에는 템플리트를 사용해야하며, 그렇지 않으면 템플리트가 새 템플리트를 작성해야합니다. 그것은 관계없이 새로운 배치를 창조해야한다. 배포는 상태 시스템과 워크 플로가있는 개체입니다. 사용자는 GET/quick_deployments /를 사용하여 배포의 현재 상태를 가져올 수 있어야합니다.

제 3의 컨트롤러가 템플릿에 대한 참조를 가질 모델이 필요하고 배포가 생성되었는지 여부가 궁금합니다. QuickDeployment와 관련된 템플릿 및 배포의 매개 변수 및 동작과 관련하여 필자가 반복 할 수 없으면 피하고 싶습니다.

그래서 QuickDeployment 모델을 만들지 않습니까? 라우팅이나 뭔가를 사용하여 모델을 만들지 않고도 동일한 작업을 수행 할 수 있습니까?

답변

0

그 세 번째 컨트롤러가 생성 된 템플릿 및 배포에 대한 참조를, 또는 하지 않을 모델을 가질 필요가 궁금 해요?

아니요. 새 컨트롤러는 기본적으로 POST 요청에서 템플릿 매개 변수를 추출하고 템플릿 레코드를 만든 다음 새로 생성 된 템플릿에 속한 배포 레코드를 배포 매개 변수와 함께 만듭니다.

관련 문제