Dominio dentro de Dominio

Tengo dos clases de dominio: -

class Product {
  ProductType productType
  int openingQuantity
  int unitQuantity
  Date dateCreated
  Date lastUpdated
  boolean active
  static constraints = {
    productType(blank:false,nullable:false)
    openingQuantity(blank:false, nullable:false)
    unitQuantity(blank:false, nullable:false)
    active(nullable:false)
    dateCreated()
    lastUpdated()
  }
}

y

class ProductType {
  String name
  Date dateCreated
  Date lastUpdated

  static constraints = {
    name(nullable:false, blank:false,maxSize:50,validator: {
      return !ProductType.findByNameIlike(it)
    })
    dateCreated()
    lastUpdated()
  }
}

cuando estoy en create.gsp de Product. muestra productType como id en el menú desplegable. pero mi requisito es mostrar el nombre de ProductType en el menú desplegable. Alguien puede ayudarme porfavor.

preguntado el 22 de mayo de 12 a las 07:05

1 Respuestas

Puede anular toString en su clase ProductType;

String toString() { name }

O, suponiendo que está utilizando el andamiaje predeterminado, cambie:

<g:select name="productType.id"
          from="${com.ten.hp.his.pharmacy.ProductType.list()}"
          optionKey="id"
          value="${productInstance?.productType?.id}" />

Añadiendo optionValue, por lo que se ve así:

<g:select name="productType.id"
          from="${com.ten.hp.his.pharmacy.ProductType.list()}"
          optionKey="id"
          optionValue="name"
          value="${productInstance?.productType?.id}" />

contestado el 22 de mayo de 12 a las 09:05

Sí, puedo hacer eso, pero no quiero hacerlo en el dominio. ¿Puedes sugerir algo a la vista? - AB

@AB ¿Qué etiquetas está utilizando actualmente para mostrar el campo en la vista? Tal vez el código para la vista ayudaría (en lugar de simplemente publicar su dominio) si es ahí donde desea que se aplique el cambio. - tim_yates

. esto se genera por scaffolding predeterminado. muestra la identificación del tipo de producto como menú desplegable. - AB

@AB Agregar optionValue="name" de las personas acusadas injustamente llamadas g:select - tim_yates

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.