【发布时间】:2015-06-15 19:02:55
【问题描述】:
我正在按照“Grails 快速入门指南”一书中的示例使用 Grails 3.0.1 和以下域
package com.tekdays
class TekEvent {
static constraints = {
name()
city()
description maxSize:5000
organizer()
venue()
startDate()
endDate()
}
String city
String name
TekUser organizer
String venue
Date startDate
Date endDate
String description
static hasMany = [volunteers: TekUser, respondents: String]
String toString(){
"$name, $city, $organizer"
}
}
还有
package com.tekdays
class TekUser {
String fullName
String userName
String password
String email
String website
String bio
String toString() { fullName }
static constraints = {
fullName()
userName()
email()
website()
bio maxSize:5000
}
}
后来我用了
grails generate-all "*"
然后是 init/BootStrap.groovy
class BootStrap {
def init = { servletContext ->
def user1 = new TekUser(fullName: 'John Doe',
userName: 'jdoe',
password: 't0ps3cr3t',
email: 'jdoe@johnsgroovyshop.com',
website: 'blog.johnsgroovyshop.com',
bio: '''John has been programming for over 40 years. He has
worked with every programming language known to man
and has settled on Groovy. In his spare time, John
dabbles in astro physics and plays
shuffleboard.''').save(flush: true, failOnError: true)
def event1 = new TekEvent(name: 'Gateway Code Camp',
city: 'Saint Louis, MO',
organizer: TekUser.findByFullName('John Doe'),
venue: 'TBD',
startDate: new Date('11/21/2013'),
endDate: new Date('11/21/2013'),
description: '''This conference will bring coders from
across platforms, languages, and industries
together for an exciting day of tips, tricks,
and tech! Stay sharp! Stay at the top of your
game! But, don't stay home! Come an join us
this fall for the first annual Gateway Code
Camp.''')
println "before event1.save"
if(!event1.save()){
event1.errors.allErrors.each{error ->
println "An error occured with event1: ${error}"
}
}
}//init
def destroy = {
}
}
当我访问http://localhost:8080/tekEvent/show/1 时,它会显示除TekUser 属性之外的所有属性,如屏幕截图所示
【问题讨论】:
标签: grails scaffolding