我正在为两个域类的几个控制器使用脚手架:1个扇区到N个项目:
class Item {
String name
static belongsTo = [sector:Sector]
....
}
class Sector {
String name
static hasMany = [items:Item]
....
}
当我生成相应的脚手架控制器时,我使用了模式(类)mgr:Sectormgr.groovy和Itemmgr.groovy。
问题是某些链接在某些生成的视图中无效,因为假设我遵循控制器的默认名称。例如:
这有一个简单的解决方法吗?我在创建控制器时遗漏了什么?
提前致谢
答案 0 :(得分:0)
我相信有几种方法可以解决这个问题。最简单的是坚持Grails的命名控制器SectorController.groovy,ItemController.groovy等的约定。
我认为的另一种方法是更新你的grails-app / conf / UrlMappings.groovy。这是默认的脚手架:
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
//apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
}
}
你想要这样的东西:
class UrlMappings {
static mappings = {
"/${controller}mgr/$action?/$id?"{ //Add mgr after controller
constraints {
//apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
}
}
答案 1 :(得分:0)
更改URLMappings对我来说似乎不起作用,而且这是一个更全面的变化。运行intall-templates
并更改src/templates/scaffolding/show.gsp
中控制器的链接是我采用的方法。
更改模板后,您需要重新启动服务器。