J'ai 3 classes de domaine: Article, utilisateur & Langue. Chaque article est écrit par un utilisateur dans une langue spécifiée. Ainsi, la relation sont (article - Langue: nombre - 1), (Utilisateur - Article: 1 - beaucoup)Grails belongsTo usage
J'essaie:
class Product {
static belongsTo = [user:User]
static belongsTo = [language:Language]
...
}
class User {
static hasMany = [products:Product]
...
}
class Language {
static hasMany = [products:Product]
...
}
Voici le problème: grails generate-all
peut créer tous les contrôleurs & vues pour tous les 3 classe de domaine, mais sans aucune entrée de propriétés dans une vue. Aucune entrée de texte, aucune zone de liste déroulante, aucun message d'erreur, ... uniquement le champ d'identification pour le produit, la langue et l'article.
Je suis assez sûr que l'erreur est sur la façon dont j'utilise la relation, parce que quand je dépose "belongsTo" & "hasMany", grails créent toute la vue sans aucun problème.
Ai-je commis une erreur?
Merci Victor. Maintenant, je n'utilise que belongsTo & hasMany pour la relation (Article - Utilisateur), et mettre une propriété de langue dans le produit, comme vous l'avez dit. Pourriez-vous s'il vous plaît me répondre comment ce travail? Au fur et à mesure que je lis les documents, belongsTo est également utilisé pour la relation (1 - many). –
Ajout d'une propriété explicite à hasMany/belongsTo ne change pas beaucoup, sauf pour 1) vous pouvez contrôler le type de champ, ie utiliser la liste au lieu de Set , que 'hasMany' ajoute implicitement, et 2) je suppose que les champs implicites don n'apparaissent pas dans Class.getDeclaredFields(). Si vous souhaitez voir comment fonctionne la génération de l'interface utilisateur, lancez 'grails install-templates'. Après cela, vous pouvez examiner les modèles dans src/templates/échafaudage et les supprimer. –