有效的Grails有很多关系

时间:2010-04-03 21:26:53

标签: grails view relationship

我正在为这样的人保存联系人(电子邮件,手机,ICQ,AIM等):

class Person {
  static hasMany = {
    contacts: Contact
  }
}
class Contact {
  String code
  ContactType type
}
class ContactType {
  String name
}

在我看来,我已经编写了一些用于显示每个联系人的模板,其中包含联系人类型的选择框和代码的文本字段,加上一些用于添加和删除的JavaScript。

我的问题是:是否有一种简单而优雅的方式来更新类似于personInstance.properties = params的数据,或者我是否必须读出所有字段,删除已删除,更新已更改并添加新字段?

1 个答案:

答案 0 :(得分:0)

前段时间我正在研究这个问题,但从来没有重构过以老式方式处理参数的代码。

根据http://www.grails.org/Controllers+-+Data+Binding你可以做这样的事情

def person = new Person(params['person'])
def contact = new Contact(params['contact'])
def conctactType = new ContactType(params['contactType'])

只要请求参数正确命名空间

person.contact.code
person.contact.type.name

您仍然需要了解如何处理一对多。也许知道的人可以参与进来。

编辑:

介绍了这个描述如何处理一对多的文档。它没有出现在主要网站上:

http://svn.codehaus.org/grails/tags/GRAILS_DOCS_1_1/src/guide/6.1.6%20Data%20Binding.gdoc