Ссылка проблема ссылки лесов Grails - PullRequest
2 голосов
/ 24 февраля 2010

Я использую строительные леса для пары контроллеров для двух классов домена: от 1 сектора до N. Элементы:

class Item {

String name

static belongsTo = [sector:Sector]

....

}

class Sector {

String name

static hasMany = [items:Item]

....

}

При создании соответствующих контроллеров строительных лесов я использовал шаблон (класс) mgr: Sectormgr.groovy и Itemmgr.groovy.

Проблема в том, что некоторые ссылки недопустимы в некоторых сгенерированных представлениях, поскольку предполагается, что я следовал именам по умолчанию для контроллеров. Например:

  • если я перейду к / sectormgr / show / 20, список связанных с ним элементов будет иметь ссылку / item / show / 22 вместо / itemmgr / show / 22 * ​​1009 *

Есть ли простое решение для этого? Я что-то упускаю при создании контроллеров?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 20 марта 2010

Изменение URLMappings, похоже, не работает для меня, и это гораздо более глобальное изменение. Запуск intall-templates и изменение ссылок на контроллеры в src/templates/scaffolding/show.gsp был подходом, который я выбрал.

Вам потребуется перезагрузить сервер после изменения шаблона.

0 голосов
/ 26 февраля 2010

Есть несколько способов решить эту проблему, я верю. Самое простое - придерживаться соглашения Grails о присвоении имен контроллерам SectorController.groovy, ItemController.groovy и т. Д.

Еще один способ справиться с этим, который, как мне кажется, сработает, - обновить ваше приложение grails-app / conf / UrlMappings.groovy. Вот стандартные леса:

class UrlMappings {
    static mappings = {
        "/$controller/$action?/$id?"{
            constraints {
                //apply constraints here
            }
        }
        "/"(view:"/index")
        "500"(view:'/error')
    }
}

Вы хотите что-то вроде:

class UrlMappings {
    static mappings = {
        "/${controller}mgr/$action?/$id?"{  //Add mgr after controller
            constraints {
                //apply constraints here
            }
        }
        "/"(view:"/index")
        "500"(view:'/error')
    }
}
...