Grails - скрыть действие / index с помощью Routes - PullRequest
14 голосов
/ 02 августа 2011

Как правильно скрыть действие / index, используя route в приложении Grails?

Я хочу иметь возможность перенаправить на контроллер: "профиль", действие: "индекс", но URL-адрес выглядит как
http://foobar.com/profile
не
http://foobar.com/profile/index

Ответы [ 2 ]

13 голосов
/ 03 августа 2011

UrlMappings.groovy

static mappings = {
      "/profile"(controller:"profile", action: "index")
}

Или вы можете установить действие по умолчанию в Контроллере

class BookController {
    static defaultAction = "index"
}

Если вы хотите перенаправить на этот URL, то из действия вконтроллер ..

redirect uri: '/profile'  // This one for the UrlMappings solution

или

redirect controller: 'profile'  // This one for the defaultAction solution.
3 голосов
/ 03 августа 2011
"/foo/" (controller:"foo", action:"index")

Это идет в UrlMapping.groovy. UrlMapping.groovy работает в обоих направлениях, это означает, что ссылка g: на контроллер foo и индекс действия также будут генерировать этот сокращенный URL.

Вы должны сделать это для каждого индекса контроллеров.

Я попытался установить:

"/$controller" {}

Но нет сигары, может быть, кто-то еще знает, как это работает.

Edit: Ха, я начал писать этот ответ перед тобой, Ник, затем потратил 10 минут на тестирование различных комбинаций всего лишь $ controller thingie: -)

...