如何使用SailJS中的关联更新模型

时间:2015-10-07 03:55:19

标签: javascript sails.js

我正在尝试使用带关联的模型。我有三种模式:

PosProductCategory.js

module.exports = {
    schema : true,
    attributes: {
        name : {type : 'string', required : true },
        desc : {type : 'text', required : true },
        // assets
        products : { collection : 'PosProduct', via : 'category' },
        productsCustomize : { collection : 'PosCustomProduct', via : 'category' },
        display : { model : 'CmsProductCategory' },
        // available spec & template attribute
        availableSpecification : { type : 'array' },
        templateAttribute : { type : 'array' },
        // store referrer
        store : { model : 'SystemStore' }
    }
};

PosProduct.js

module.exports = {
    schema : true,
    attributes: {
        name          : { type : 'string', required   : true },
        desc          : { type : 'text' },
        basePrice     : { type : 'integer' , required : true },
        // category
        category      : { model : 'PosProductCategory'},
        // tags
        // { "text": {string} }
        tags          : { collection : 'PosProductTag', via : 'products', dominant: true},
        // attributes
        attributes    : { type : 'object' },
        // specification
        specification : { type : 'object' },
        // materials (donwlodable material / attachment)
        // { name : {string}, file: {string}, notes : {text} }
        materials     : {type : 'array'},
        // publishment
        published     : { type : 'boolean', defaultsTo: false },
        // assets
        display       : { model : 'CmsProduct' },
        // store referrer
        store         : { model : 'SystemStore' }
    }
};

PosCustomProduct.js

module.exports = {
    schema : true,
    attributes: {
        name            : { type : 'string', required   : true },
        basePrice       : { type : 'integer' , required : true },
        //category
        category        : { model : 'PosProductCategory'},
        //variant
        attributes      : { type : 'object' },
        //gambar setiap sisi
        materials       : { type : 'object' },
        // publishment
        published       : { type : 'boolean', defaultsTo: false },
        // assets
        display         : { model : 'CmsCustomProduct' },
        // store referrer
        store           : { model : 'SystemStore' }
    }

如果我使用 sails lift 运行,则出现错误错误:尝试将集合属性与没有Foregn Key的模型相关联。 poscustomproduct类试图在poscustomproduct 中引用外键。我试图解决它,但它仍然有一个错误。那么如何修复我的模型?

1 个答案:

答案 0 :(得分:0)

看起来你正试图将一个模型联系起来而无法引用这种关系,例如你有你的" master"表,但你的"中学" table无法告诉这些项目属于谁......

http://sailsjs.org/documentation/concepts/models-and-orm/associations/one-to-many