2011-05-06 2 views
0

Comment faire un formulaire pour ajouter des utilisateurs, qui ont un rôle, je veux utiliser quelque chose comme dans l'exemple de Yabe, mais sans crud ...Beaucoup à plusieurs sans crud

User: 
@ManyToMany(cascade=CascadeType.ALL) 
public Set<Role> roles = new HashSet(); 

Role: 
@ManyToMany(mappedBy="roles") 
public Set<User> users = new HashSet<User>(); 

#{field 'user.email'} 
<input id="${field.id}" name= "${field.name}" class="element text" maxlength="255" size="20" value="${field.value}"/> 
#{/field} 
... 
<select multiple name="roles"> 
#{field 'user.roles'} 
<option value="admin">admin</option> 
<option value="user">user</option> 
#{/field} 
</select> 

Répondre

1

Il y a probablement une meilleure façon de le faire, et je serais intéressé à trouver, mais je le fais comme ceci:

<div class="field"> 
    <select name="user.roles.id" multiple> 
    %{ models.Role.all().fetch().sort{ it.toString() }.each() { }% 
    %{ selected = false; user?.roles.each() { f -> if (f.id == it?.id) selected = true; } }% 
    <option value="${it?.id}"${selected ? 'selected'.raw() : ''}>${it}</option> 
    %{ } }% 
    </select> 
</div> 
+0

Merci beaucoup) je l'ai fait avec jquery tagger, sans utiliser de sélection, je pense que ce serait génial d'écrire assistant, je vais y penser quand j'aurai plus de temps) – Pavel