Grails脚手架链接参考问题

时间:2010-02-24 14:18:12

标签: grails scaffolding

我正在为两个域类的几个控制器使用脚手架:1个扇区到N个项目:

class Item {

String name

static belongsTo = [sector:Sector]

....

}

class Sector {

String name

static hasMany = [items:Item]

....

}

当我生成相应的脚手架控制器时,我使用了模式(类)mgr:Sectormgr.groovy和Itemmgr.groovy。

问题是某些链接在某些生成的视图中无效,因为假设我遵循控制器的默认名称。例如:

  • 如果我去/ sectormgr / show / 20,与之关联的项目列表包含链接/ item / show / 22,而不是/ itemmgr / show / 22

这有一个简单的解决方法吗?我在创建控制器时遗漏了什么?

提前致谢

2 个答案:

答案 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中控制器的链接是我采用的方法。

更改模板后,您需要重新启动服务器。