2017-01-22 1 views
1

Ce qui suit est mon modèle de voiles, chaque fois que je tente de sauver() Je reçois l'erreur suivantesailsjs la propriété du modèle de type objet, est-ce possible?

[Error: Unknown rule: address] 

utiliser pour avoir des modèles similaires avec mangouste, sans aucun problème, quelqu'un pourrait voir des erreurs dans mon modèle?

Merci!

/** 
* Users.js 
* 
* @description :: TODO: You might write a short summary of how this model works and what it represents here. 
* @docs  :: http://sailsjs.org/documentation/concepts/models-and-orm/models 
*/ 

module.exports = { 

    connection: 'MongoServer', 

    attributes: { 
     AcctSessionId: {type: 'string', required: false, default: ''}, 
     UserName: {type: 'string', required: true, unique: true}, 
     UserPassword: {type: 'string', required: true}, 
     AcctStartDelay: {type: 'string', required: false, default: ''}, 
     AcctStopDelay:{type: 'string', required: false, default: ''}, 
     AcctPlan: {type: 'string', required: false, default: ''}, 
     AcctResellerID: {type: 'string', required: false, default: ''}, 
     AcctPrice: {type: 'integer', required: false, default: ''}, 
     AcctCurrency: {type: 'string', required: false, default: 'LBP'}, 
     AcctEnabled: {type: 'boolean', required: false, default: true}, 
     AcctExpiry: {type: 'boolean', required: true}, 

     meta: { 
     address: {type: 'string', required: false, default: ''}, 
     city: {type: 'string', required: false, default: ''}, 
     mobile: {type: 'integer', required: true, default: ''}, 
     email: {type: 'string', required: false, default: ''}, 
     name: {type: 'string', required: true, default: ''} 
     } 

    } 
}; 

Répondre

1

Vous ne pouvez pas imbriquer des données de ce type en utilisant Sails/Waterline ORM. Le problème est avec le bit meta : {}. Donc, en ce qui concerne les voiles, vous avez défini un attribut appelé meta, et vous essayez d'appliquer une règle (telle que type : 'string') appelée address, city, mobile, email etc, et ce ne sont pas des règles valides.

Je vous suggère soit de créer un nouveau modèle appelé address, ou userMeta ou quelque chose de similaire, et de mettre address, city, mobile, email etc là dedans. Ensuite, les associer, ou, tout simplement se débarrasser de l'emballage tout à fait meta : {} et ont comme tel ....

/** 
* Users.js 
* 
* @description :: TODO: You might write a short summary of how this model works and what it represents here. 
* @docs  :: http://sailsjs.org/documentation/concepts/models-and-orm/models 
*/ 

module.exports = { 

    connection: 'MongoServer', 

    attributes: { 
     AcctSessionId: { type: 'string', required: false, default: '' }, 
     UserName: { type: 'string', required: true, unique: true }, 
     UserPassword: { type: 'string', required: true }, 
     AcctStartDelay: { type: 'string', required: false, default: '' }, 
     AcctStopDelay: { type: 'string', required: false, default: '' }, 
     AcctPlan: { type: 'string', required: false, default: '' }, 
     AcctResellerID: { type: 'string', required: false, default: '' }, 
     AcctPrice: { type: 'integer', required: false, default: '' }, 
     AcctCurrency: { type: 'string', required: false, default: 'LBP' }, 
     AcctEnabled: { type: 'boolean', required: false, default: true }, 
     AcctExpiry: { type: 'boolean', required: true }, 

     address: { type: 'string', required: false, default: '' }, 
     city: { type: 'string', required: false, default: '' }, 
     mobile: { type: 'integer', required: true, default: '' }, 
     email: { type: 'string', required: false, default: '' }, 
     name: { type: 'string', required: true, default: '' } 
    } 
}; 

Voir sails attributes pour ce que vous pouvez ou ne pouvez pas mettre dans une description du modèle