我是新来的Grails。 我有一个Person域类为:
class Person {
String firstName
String lastName
String gender
Date dateOfBirth
}
并想知道如果我能为一个属性定义可能的值 - 比如性别作为{M,F,U}使这三个值将在组合框中使用动态脚手架人控制时上市。
在这里,我只是想知道是否有在Grails框架这样的功能? 如果这样的功能存在,那我该怎么使用呢?
我是新来的Grails。 我有一个Person域类为:
class Person {
String firstName
String lastName
String gender
Date dateOfBirth
}
并想知道如果我能为一个属性定义可能的值 - 比如性别作为{M,F,U}使这三个值将在组合框中使用动态脚手架人控制时上市。
在这里,我只是想知道是否有在Grails框架这样的功能? 如果这样的功能存在,那我该怎么使用呢?
从文档http://grails.org/doc/latest/guide/scaffolding.html ,你应该能够使用INLIST约束:
class Person {
String firstName
String lastName
String gender
Date dateOfBirth
def constraints = {
gender( inList: ["M", "F", "U"])
}
}
这应该脚手架的选择列表中的性别字段,这取决于你使用Grails的版本。 2.0+肯定这一点。
下面是一个替代的解决方案
class Person {
String firstName
String lastName
enum Gender {
M(1),
F(2),
U(3)
private Gender(int val) { this.id = val }
final int id
}
Gender gender = Gender.U
Date dateOfBirth
def constraints = {
gender()
}
}
这将在数据库中存储为一个整数(1,2,3),性别和默认的性别,以美国的利益在这里是可以重命名什么F,M和U的意思是不需要处理数据迁移。