Many-to-Many com Checkbox
08/09/2008 00:00
0
Amigos, estou iniciando no Grails. Estou fazendo uns testes e percebi o quanto é duro implementar algo many-to-many. Eu tenho as seguintes classes:


class Recurso {
String descricao

static belongsTo = [Usuario]
static hasMany = [usuarios:Usuario]

static constraint = {
descricao(unique:true)
}

String toString(){
"${this.descricao}"
}
}


class Usuario {
String nome
String senha

static hasMany = [recursos:Recurso]

static mappedBy = [recursos: "usuarios"]

String toString(){
"${this.nome}"
}
}


class Uniao {
Integer usuariosId
Integer recursosId

static mapping = {
table 'usuario_recurso'
version false
id column:'id'
usuariosId column:'usuarios_id'
recursosId column:'recursos_id'
}
}

Um usuário pode ter vários recursos e um recurso pode estar alocado a vários usuários. Ao criar o usuário deve-se escolher os recursos que o mesmo irá usar marcando checkbox. Só que não consigo inserir a informação correta na tabela usuario_recurso. No controller Usuario faço da seguinte forma:

def save = {
def usuario = new Usuario()
usuario.nome = params.nome
usuario.senha = params.senha

if(!usuario.hasErrors() && usuario.save()) {
List lista = ListUtil.toList(params.recursos)

for(i in lista)
{
def uniao = new Uniao()
uniao.usuariosId = usuario.id
uniao.recursosId = i
println i
uniao.save()
}
flash.message = "Usuario ${usuario.nome} created"
redirect(action:show,id:usuario.id)
}
else {
render(view:'create',model:[usuario:usuario])
}
}

Alguém pode me ajudar??? Abraço![/code]
Tags: Grails


0
93!

Kra, se der posta seu view aí tb!
Daí dá pra tentar reproduzir o que vc quer pra tentar te dar uma força! <!-- s;-) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";-)" title="Wink" /><!-- s;-) -->

[]'s

93,93/93
11/09/2008 00:00


0
view\usuario\create.gsp
Antes do que vem abaixo tem o campo nome e senha do usuario.

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;>
<label for=&quot;recursos&quot;>Recursos&#58;</label>
</td>
<td valign=&quot;top&quot; class=&quot;value $&#123;hasErrors(bean&#58;usuario,field&#58;'recursos','errors')&#125;&quot;>
<table border=&quot;0&quot;>
<tr>
<g&#58;each in=&quot;$&#123;Recurso.list()&#125;&quot; status=&quot;i&quot; var=&quot;recurso&quot;>
<td>
<g&#58;checkBox name=&quot;recursos&quot; value=&quot;$&#123;fieldValue(bean&#58;recurso,field&#58;'id')&#125;&quot; checked=&quot;false&quot; />&amp;nbsp;$&#123;fieldValue(bean&#58;recurso,field&#58;'descricao')&#125;
</td>
<g&#58;if test=&quot;$&#123;(i+1)%3 == 0&#125;&quot;>
</tr><tr>
</g&#58;if>
</g&#58;each>
</tr>
</table>
</td>
</tr>
11/09/2008 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto