如何调用另一个传递Grails中所有参数的控制器(以相同的形式更新关联的表)

时间:2013-05-26 17:43:30

标签: grails

我正在使用域类Alojamiento及其生成的控制器和视图。 下一个代码有效:

我已经以视图的形式包含了另一种形式:

<g:render template="../caracteristicas/form" bean="${params.caracteristicasInstance}" />

现在,控制器编辑操作有:

def alojamientoInstance = Alojamiento.get(id)
def caracteristicasInstance = alojamientoInstance.caracteristicas
[caracteristicasInstance: caracteristicasInstance,

以及控制器的更新操作:

def caracteristicasInstance = Caracteristicas.get(id)
caracteristicasInstance.properties = params
caracteristicasInstance.save(flush: true)

正如我所说的,上面的代码可以正常工作,但它没有防止错误,因此我正在尝试使用CaracteristicasController的更新操作(我正在遵循这种方法:http://stuff4j.blogspot.com.es/2011/04/calling-controller-method-from-another.html)。 下一个代码不起作用,但我认为它解释了我正在尝试的内容

CaracteristicasController caracteristicasController = new CaracteristicasController()
CaracteristicasController.properties = params
CaracteristicasController.params.doNotRedirect = 'true' // See: http://stuff4j.blogspot.com.es/2011/04/calling-controller-method-from-another.html
CaracteristicasController.update()

顺便说一句,Grails的错误是:“无法设置只读属性:属性”

更新1

我想我没有解释好。我在_form.gsp 3中嵌入了_form.gsp(我在我的问题1中说过以简化)。所以当我编辑_form.gsp时,其他的也必须更新。我想调用“子”控制器的更新操作来更新表单,但不要移动到它们。我想继续在“父”控制器中,所以当一切都更新时,将出现“父”的show.gsp。我现在能更好地解释一下吗?

1 个答案:

答案 0 :(得分:2)

为什么不redirectchain所有人都需要参数?