Grails offre la possibilità di creare e associare automaticamente oggetti di dominio a un elenco di molti, come descritto nello grails user guide.Grails - Rimozione di un elemento da un'associazione hasMany Elenco sul binding dei dati?
Così, per esempio, se il mio dominio oggetto "Autore" ha una lista di molti oggetti "libro", ho potuto creare e associare questi utilizzando il seguente markup (dal manuale d'uso):
<g:textField name="books[0].title" value="the Stand" />
<g:textField name="books[1].title" value="the Shining" />
<g:textField name="books[2].title" value="Red Madder" />
In questo caso, se uno dei libri specificati non esiste già, Grails li creerà e imposterà i titoli in modo appropriato. Se ci sono già libri negli indici specificati, i loro titoli saranno aggiornati e saranno salvati. La mia domanda è: c'è un modo semplice per dire a Grails di rimuovere uno di quei libri dall'associazione "libri" sul data bind?
Il modo più ovvio per farlo sarebbe quello di omettere l'elemento del modulo che corrisponde all'istanza del dominio che si desidera eliminare; Purtroppo, questo non funziona, come da manuale d'uso:
Poi Grails crea automaticamente una nuova istanza per voi al definita posizione. Se hai "saltato" alcuni elementi nel mezzo ... Allora Grails creerà automaticamente delle istanze tra .
Mi rendo conto che una soluzione specifica potrebbe essere progettata come parte di un oggetto comando o come parte di un particolare controller, tuttavia, la necessità di questa funzionalità appare ripetutamente in tutta la mia applicazione, su più oggetti di dominio e per associazioni di molti diversi tipi di oggetti. Una soluzione generale, quindi, sarebbe l'ideale. Qualcuno sa se c'è qualcosa di simile incluso in Grails?
ho trovato che "bidRequest.documents = []" funziona meglio dal momento che i documenti potrebbero essere nulli. – mlathe