2014-09-18 41 views
0

如何在where关闭中使用隐式参数?如何引用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没有引起任何麻烦,即使没有破解。这种做法是好还是不鼓励?

回答

0

那么你可以得到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 } 
}