我已经阅读了很多关于grails urlMapping的答案,但没有找到符合我需要的答案。
假设我有两个域:Project
和 Contributor
class Project{
String name;
String urlName; //is the name converted to url
static belongsTo = [contributor: Contributor]
}
//a contributor has many Projects, then in the `Project`
//table I have `contributor_id`
class Contributor{
String userName;
static hasMany = [projets: Project]
}
我的网址看起来像这样:
www.mysite.com/frank/frank-s-nice-project/comments
www.mysite.com/bill/bill-s-great-project/comments
www.mysite.com/lucie/lucie-s-awesome-project/comments
对应于:www.mysite.com/ 用户名/ urlName /评论
username
来自贡献者域。
urlName
来自项目域
当网址匹配urlMappgings.groovy
时,如何设置controller/action
始终重定向到同一"/$username/$urlName/comments"
我试过这样但没有成功。
static mappings = {
"/$username/$urlName/comments"(controller: 'comment', action: 'index)
}
感谢您的帮助。
答案 0 :(得分:0)
static mappings = {
"/comments/$username/$urlName"(controller: 'comment', action: 'index)
}
如果您将注释替换为第一个值并发表注释然后解析用户名/网址会发生什么?
我可以通过初始映射看到的问题是用户名会与项目的实际实际操作冲突
答案 1 :(得分:0)
我回答我的问题,将其作为已接受的答案,
这实际上有效
static mappings = {
"/$username/$urlName/comments"(controller: 'comment', action: 'index)
}