如何在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
里面的条件并没有造成任何麻烦,即使没有破解。这种做法可以还是不鼓励?