我正在尝试将注册时的dateOfBirth
设置为至少13岁。我不想在User类上有一个age
字段,我只想坚持使用dateOfBirth
。
我如何包括验证以精确减去13年(占leap年)。
目前在我的约束中,我正在使用以下行:dateOfBirth blank: false, max: (new Date() - 13*365)
我宁愿不使用自定义验证,因为我相信一定有没有它的方法。我尝试了以下方法:dateOfBirth blank: false, use(TimeCategory) { max: new Date() - 13.year }
use(TimeCategory)
部分(我相信)我也曾尝试使用魔术数字插件无济于事。我试过了:
dateOfBirth blank: false, max: 13.years.ago
和
dateOfBirth blank: false, max: 13.years.ago.toDate()
并导入了
com.metasieve.magicnumbers.*
包。
最佳答案
自定义验证器有什么问题?我认为这是一个很好的案例,其中自定义验证器是正确的选择。
import groovy.time.TimeCategory
dateOfBirth validator: {
use (TimeCategory) {
it?.before(13.years.ago)
}
}
关于grails - 从今天开始13年前的Grails验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125188/