在域对象约束中使用 grails 配置值

Rai*_*ipe 3 grails unit-testing config domain-object

Grails 2.2.0

如何访问 Grails 域对象约束中的自定义配置变量。

我想要这样的东西:

    class User {

         def grailsApplication

         String name

         static constraints = {
             name size: grailsApplication.config.maxlength
         }  

    }
Run Code Online (Sandbox Code Playgroud)

但它因“没有这样的属性:grailsApplication”而失败。我试图通过遵循在域对象和静态范围获取 grails 2.0.0M1 配置信息的建议来使其工作但还没有设法让任何组合工作。

如何访问域对象约束中的配置?另外,如何在域约束的单元测试中处理这种情况?

cod*_*ark 5

您可以使用grails.util.Holders该类访问配置对象,如下所示:

Config.groovy

myMaxSize = 10
Run Code Online (Sandbox Code Playgroud)

在您的域类中:

class User {
    String name

    static constraints = {
        name minSize: Holders.config.myMaxSize
    }
}
Run Code Online (Sandbox Code Playgroud)