grails - 在资源映射中嵌套常规URL映射时,可以更改生成的变量的名称吗?

标签 grails

为了在资源映射中嵌套常规URL映射,根据url映射部分中的grails documentation,您可以执行以下操作

"/books"(resources: "book") {
    "/publisher"(controller:"book", action:'publisher', method: "GET")
}

这将产生以下网址列表
Controller: book
 |   GET    | /books/create                                     | Action: create              |
 |   GET    | /books/${id}/edit                                 | Action: edit                |
 |   GET    | /books/${bookId}/publisher                        | Action: publisher           |
 |   POST   | /books                                            | Action: save                |
 |   GET    | /books                                            | Action: index               |
 |  DELETE  | /books/${id}                                      | Action: delete              |
 |  PATCH   | /books/${id}                                      | Action: patch               |
 |   PUT    | /books/${id}                                      | Action: update              |
 |   GET    | /books/${id}                                      | Action: show                |

如您所见,由"/publisher"(controller:"book", action:'publisher', method: "GET")生成的URL使用变量bookId代替了像其他URL一样的id
/books/${bookId}/publisher
我的问题是是否可以更改此变量的名称,并像其他名称一样命名它为id
提前致谢

最佳答案

我没有亲自使用该映射样式,但是我相信资源映射中常规URL映射的意图是对该特定路径(在这种情况下为/publisher)执行“特殊”操作(例如,您可以将其完全映射到其他 Controller )等)

听起来您想让它像另一个标准的GET方法一样工作,所以您可以添加一个资源条目,例如
get "/books/$id/publisher"(controller:"book", action:"publisher")

关于grails - 在资源映射中嵌套常规URL映射时,可以更改生成的变量的名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47208497/

相关文章:

database - grails:从 Controller 在数据库中创建条目

Grails:如何在 cmd 控制台中打印?

spring - Grails Spring Core 安全插件 - 无法解析类

grails - 根据某些条件取消/阻止域对象的保存?

file - Grails-通过附加程序登录文件

grails - IOS的foursquare oauth2

grails - 如何在 Grails 2.4.X 中获取自定义数据源引用?

javascript - ajax 函数和 Grails Controller

grails - Grails插件数据库迁移使用哈希表添加域对象

rest - Grails列出 Restful 资源返回意外结果