Как ссылаться на неявные параметры в закрытии где
Как я могу использовать неявный параметр внутри where
закрытие?
Я не особенно горжусь своим текущим решением проблемы:
def index() {
def params = params // <-- UGLY HACK
respond Project.where {
if (params.sender) {
sender.id == params.sender // <-- OTHERWISE THIS WOULD FAIL
}
}
}
Также я заметил, что могу параметризовать запрос, поместив общий код Groovy в замыкание, такой как if
выше. Странно, params
внутри условно не доставляло никаких хлопот даже без взлома. Это нормально или не рекомендуется?
1 ответ
Ну, вы можете получить sender
первый:
def thesender = Sender.get(params.sender)
Затем передайте это в качестве критерия вашему where
закрытие:
Project.where { sender == thesender }
Вы получаете что-то вроде этого:
def index() {
def thesender = Sender.get(params.sender)
respond Project.where { sender == thesender }
}