2010-04-03 5 views
0

Я сохраняю контакты (электронная почта, мобильный телефон, ICQ, AIM и т.д.) для людей, как это:Grails эффективным hasMany-Отношения в View

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

На мой взгляд, я написал несколько шаблонов для отображение каждого контакта с помощью select-box для типа контакта и текстового поля для кода, подгоняемого некоторым JavaScript для добавления и удаления.

Мой вопрос: есть ли простой и элегантный способ обновления данных, подобных personInstance.properties = params, или мне нужно прочитать все поля, удалить удаленные, обновить измененные и добавить новые?

ответ

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']) 

, пока запрос PARAMS правильно пространство имен

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

Вы бы еще должны выяснить, как обращаться один ко многим. Может быть, кто-то, кто знает, может скинуться

Edit:.

Наткнулся этом документ, который описывает, как обрабатывать один-ко-многим. Он не появляется на главном сайте Grails:

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

+0

Спасибо, это то, что я искал. Текущую документацию по этому вопросу можно найти здесь: http://www.grails.org/doc/1.2.x/guide/6.%20The%20Web%20Layer.html#6.1.6%20Data%20Binding – Jan