URL-адреса Grails - PullRequest
       9

URL-адреса Grails

1 голос
/ 02 февраля 2012

В моем приложении Grails есть пара классов доменов, скажем Author и Book.Я использую сопоставления URL по умолчанию:

static mappings = {
  "/$controller/$action?/$id?"{
    constraints {
      // apply constraints here
    }
  }
}

Так что относительный URL для отображения книги с идентификатором 2 - /book/show/2 или для автора с идентификатором 5 - /author/show/5.Оба класса Author и Book имеют уникальное свойство name.

Я бы предпочел, чтобы в URL-адресах указывался автор или книга, а для идентификации книги / автора использовалось имя, а не идентификатор базы данных,например, /author/show/shakespeare и /book/show/ulysses.Это достижимо без изменения классов домена, так что поле имени является идентификатором (первичный ключ)?

1 Ответ

2 голосов
/ 02 февраля 2012

Вы можете просто передать строки (например, "Шекспир") как params.id, а затем вместо:

Author.get(params.id)

в методе вашего контроллера выполните:

Author.findByName(params.id)

Насколько я знаю, параметр id (при использовании с URL) не имеет , чтобы быть long.

...