2011-11-24 4 views
0

grails generate-all을 사용하여 생성 된 컨트롤러를보고 있습니다. createsave 작업이 모두있는 이유가 있습니까? 행동 으로서는 create 만 있고 서비스로는 save이있는 것이 더 나을 것입니다. 이런 식으로 뭔가 :스캐 폴딩 컨트롤러 동작

def create = { 
    if (params.create) { //this is the save button 
     if (!domainService.save(params)) { 
      render(view: "create", model: [domain: new Domain(params)]) //show validation errors 
     } 
     else { 
      render(view: "show", id: params.id) 
     } 
    } 
    else { 
     render(view: "create") //show blank form 
    } 
} 

내가 모두 createsave 조치를 유지하고이 길을 가지 말았어야 왜 어떤 이유가 있습니까? 스캐 폴딩 된 컨트롤러는 내 의견이 너무 무거워서 나는 좀 더 consise (나는 grails를 배울 수있는 scaffolded 코드를 사용하고있다)를 만드는 방법을 찾고있다.

답변

1

작성 조치는 새 도메인 인스턴스 작성을위한 처음 항목이며, save는 저장하려고하는 간단한 조치입니다. 이러한 작업에는 컨트롤러에 명확한 이름과 간단한 코드가 있습니다.

그러나 당신의 접근 방식은 몇 가지 문제가 있습니다. if-else의 두 가지 수준이 있습니다. 문제가 될 수 있으며 읽기 및 유지 관리가 쉽지 않습니다. 실제로 컨트롤러 작업을 수행하는 domainService를 만들고 유지 관리해야합니다. 서비스에 단순한 save()를 분할 할 필요가 없습니다.

기본 생성 grails 컨트롤러는 사용자보다 훨씬 간단합니다.

관련 문제