0

次のような人の連絡先(メール、携帯電話、ICQ、AIMなど)を保存しています。

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

私の見解では、連絡先タイプの選択ボックスとコードのテキストフィールドを使用して各連絡先を表示するためのテンプレートをいくつか作成し、追加と削除のためのJavaScriptを追加しました。

私の質問は次のとおりです。データを更新する簡単でエレガントな方法はありますか、personInstance.properties = paramsそれともすべてのフィールドを読み取り、削除を削除し、変更を更新し、新しいフィールドを追加する必要がありますか?

4

1 に答える 1

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

あなたはまだ1対多を処理する方法を見つける必要があります。たぶん、知っている人がチップインすることができます。

編集:

1対多の処理方法を説明するこのドキュメントに出くわしました。メインのgrailsサイトには表示されません:

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

于 2010-04-03T21:55:08.310 に答える