2010-02-24 7 views
2
I 두 도메인 클래스에 대한 컨트롤러의 커플 용 목재를 사용하고

1 섹터 N 항목에 : I는 I 패턴을 사용하여 대응하는 발판 컨트롤러를 생성Grails의 발판 링크 기준 문제

class Item { 

String name 

static belongsTo = [sector:Sector] 

.... 

} 

class Sector { 

String name 

static hasMany = [items:Item] 

.... 

} 

(클래스) mgr : Sectormgr.groovy 및 Itemmgr.groovy.

일부 링크는 생성 된보기에서 유효하지 않습니다. 왜냐하면 컨트롤러의 기본 이름을 따랐다 고 가정하기 때문입니다. 예를 들면 : 나는/sectormgr/쇼/20에 가면

  • , 그와 관련된 항목의 목록이 링크/아이템/쇼/22, 대신에/itemmgr/쇼/22

쉽게 해결할 수 있습니까? 컨트롤러를 만들 때 뭔가 빠졌습니까?

미리 감사드립니다.

답변

0

제가 생각하기에이 문제를 해결할 수있는 몇 가지 방법이 있습니다. 가장 간단한 등 당신의 컨트롤러 SectorController.groovy, ItemController.groovy을, 이름의 Grails의 규칙에 충실하는 것입니다

내가이 작동합니다 생각 그이 처리하는 또 다른 방법은 업데이트하는 것입니다 당신의 관례에 따라 grails-app/conf/UrlMappings.groovy.

class UrlMappings { 
    static mappings = { 
     "/$controller/$action?/$id?"{ 
      constraints { 
       //apply constraints here 
      } 
     } 
     "/"(view:"/index") 
     "500"(view:'/error') 
    } 
} 

당신은 같은 것을 할 : 다음은 기본 발판이되는 URLMappings 나를 위해 작동하지 않았다 변경

class UrlMappings { 
    static mappings = { 
     "/${controller}mgr/$action?/$id?"{ //Add mgr after controller 
      constraints { 
       //apply constraints here 
      } 
     } 
     "/"(view:"/index") 
     "500"(view:'/error') 
    } 
} 
+0

이 방법이 효과가 있는지 궁금합니다. 저에게 알려주세요! –

0

을, 그리고 훨씬 더 글로벌 변화입니다. intall-templates을 실행하고 컨트롤러에 대한 링크를 src/templates/scaffolding/show.gsp으로 변경하는 것은 제가 취한 접근법이었습니다.

템플릿을 변경 한 후 서버를 다시 시작해야합니다.