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

时间:2017-11-09 17:52:38

标签: 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")生成的网址使用变量bookId代替id,与其他网址一样。

/books/${bookId}/publisher

我的问题是,是否可以更改此变量的名称并将其命名为id,就像其他人一样

提前致谢

1 个答案:

答案 0 :(得分:0)

我个人没有使用过那种映射风格,但我相信资源映射中常规URL映射的目的是做一些特殊的事情'使用该特定路径,在这种情况下/publisher(例如,您可以将其完全映射到不同的控制器等)

听起来你希望它表现得像另一个标准的GET方法,所以你可以添加像

这样的资源条目

get "/books/$id/publisher"(controller:"book", action:"publisher")