Доступ к модели от расположения просматривает в Grails

Причина в следующем предложении в связанных документах:

Они получают инициализированный экземпляр, Атрибут и переданное значение.

blockquote>

Для более продвинутой проверки, подпись def validator(inst, attribute, val).

Просто измените подписи на

def _validate_polling_interval(_, __, polling_interval):

и

def _validate_batch_size(_, __, batch_size):

, и это будет работать.

Вот полный пример описательной документации: http://www.attrs.org/en/stable/init.html#callables

P.S. Использование утверждений в производственном коде не лучшая идея. Например. запуск python -O лишит их. Я бы порекомендовал поднять старый добрый ValueErrors или даже описательный его подкласс.

5
задан knorv 2 February 2009 в 13:58
поделиться

1 ответ

Я предложил бы использовать или запрос или объем сессии с этой целью. Вероятно, большая часть DRY, путь состоит в том, чтобы заполнить объем, является фильтром. Например, в файле grails-app/conf/SecurityFilters.groovy (необходимо будет создать его):

class SecurityFilters {

    def filters = {
        populateCurrentUser(controller: '*', action: '*') {
            before = {
                 request.user = User.get(session.userId)
            }
        }
    }
}    

Пример предполагает хранение идентификатора текущего пользователя в "идентификаторе пользователя" атрибута сессии и что у Вас есть Доменный класс "Пользователь". Используя его в расположении так просто:

<g:if test="${request.user}">
   Current User: ${request.user.username}
</g:if>
9
ответ дан 14 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: