我竭力要得到正确的Grails的关联。 比方说,我有两个领域类:
class Engine {
String name
int numberOfCylinders = 4
static constraints = {
name(blank:false, nullable:false)
numberOfCylinders(range:4..8)
}
}
class Car {
int year
String brand
Engine engine = new Engine(name:"Default Engine")
static constraints = {
engine(nullable:false)
brand(blank:false, nullable:false)
year(nullable:false)
}
}
这个想法是,用户无需先创建引擎打造的汽车,这些汽车得到了默认引擎。 在CarController我有:
def save = {
def car = new Car(params)
if(!car.hasErrors() && car.save()){
flash.message = "Car saved"
redirect(action:index)
}else{
render(view:'create', model:[car:car])
}
}
当试图挽救,我上Car.engine字段为空值异常,所以显然不是创建的默认引擎和保存。 我试图手动创建引擎:
def save = {
def car = new Car(params)
car.engine = new Engine(name: "Default Engine")
if(!car.hasErrors() && car.save()){
flash.message = "Car saved"
redirect(action:index)
}else{
render(view:'create', model:[car:car])
}
}
没有任何工作。 是的Grails无法保存相关的类? 我怎么能实现这样的功能?