假设我有一个过滤器(在每个操作之前都会被调用),如何将从数据库中获取的对象传递给每个 View ?我不想重构
我所有的方法

生动化:

我有一个设置对象的过滤器,例如:

def god = God.find(1)

我有100个 Controller ,每个 Controller 有100种方法,即100 * 100 View 。
通常在 Action 中,您编写类似以下内容:
def index = {
 def something = Something.find(1)
 [something: something]
}

问题是我如何也可以传递God对象,而不必将return数组修改为
[something: something, god: god]

最佳答案

您可能希望为此过滤器添加一个after拦截器类型。 aftermodel作为闭包的参数,您可以在该模型中添加上帝。

myFilter(controller:'*', action:'*') {
    after = { model ->
        def god = God.find(1)
        model.god = god
    }
}

Here's相关文档部分。

10-07 22:49