2011-05-19 68 views
0

嘿。我有這樣的事情:grails databinding從選擇中獲取ID

class Car{ 
String name 

} 

class Volante{ 
String name 
Car car 
} 

我的GSP文件:

<g:form controller="volante" action="save"> 
<label>Car</label> 
<g:select name="car.id" from="${cm.Car.list()}" optionKey="id" value="${car?.id}" /><br><br><br> 

<label>name 
</label> 
<input type="text" name="name" value="${volante?.name}" /> 
</g:form> 

def save = { 
     def volante= new Volante() 



     volante.car = params.car.id ################ 

     volante.name = params.name 



      if (!volante.save(failOnError: true)) { 
     render (view: "/participatedAdd", model : [volante: volante]) 
     return 
    } 

     render(view: "/participated") 

    } 

我在那裏我有###########問題。怎麼能這樣做=?我不知道如何獲得汽車id鏈接到volante.car。任何幫助都會有所幫助。

PS。我不使用def volante =新Volante(params),因爲我的觀點比這更復雜。 而且我必須在視圖「className.attribute」的值中使用?因爲im綁定了多個域類。

回答

2
def car = Car.get(params.car.id) 
volante.car = car 

你有沒有試過類似的東西?

+0

gona try:p謝謝 – robert 2011-05-19 19:54:03

0

您可以試試:

volante.car = Car.get(params['car.id']) 

但是,你也可以只使用Grails的數據綁定到特定的屬性綁定:由於參數名是car.id

def volante = new Volante() 
volante.properties['car'] = params 

,Grails將認識到你'通過id映射關聯並將它綁定給你。