Изменились ли сопоставления URL в Grails 1.3.7? - PullRequest
1 голос
/ 06 апреля 2011

Ситуация:

Скажем, у меня есть пример контроллера AccountController с некоторыми действиями по показу, редактированию и обновлению.

В отображениях URL-адресов Grails я пытаюсь отобразить тип метода, например ПОЛУЧИТЬ ПОСТ и т. Д.

Тогда у меня есть ссылка, которая указывает на соответствующее действие контроллера:

<g:link controller="account" action="edit">Edit my account link</g:link>

с отображениями:

"/profile"      (controller: "account", action: "show")
"/profile/edit" (controller: "account", action: [GET: "edit", POST: "update"])

проблема здесь в том, что генерируемая ссылка должна использовать сопоставления для поиска и делать так, чтобы "/ profile / edit" на сгенерированной html-странице, но вместо этого на странице было "/ account / edit" , который в соответствии с отображениями не существует, поэтому просто вызывает ошибку при нажатии.

Я даже пробовал альтернативный синтаксис:

"/profile/edit" (controller: "account") { action = [GET: "edit", POST: "update"] }

но он все еще указывает на несуществующее отображение URL.

Это ошибка или просто у меня плохой день?

1 Ответ

2 голосов
/ 06 апреля 2011

Я не знаю, работало ли это (обратное сопоставление URL-адресов с помощью методов HTTP) в предыдущих версиях Grails, но я воспроизвел вашу проблему здесь, в 1.3.7, и единственное решение, которое я нашел, - это использовать * 1001.* сопоставления именованных URL .Используя его, ваш тег будет:

<g:link controller="account" action="edit" mapping="profileEditing">
    Edit my account link
</g:link>

и отображение редактирования будет:

name profileEditing: "/profile/edit" (controller: "account") {
    action = [GET: "edit", POST: "update"]
}

С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...