Sails.js模型关联

时间:2015-06-06 11:05:32

标签: sails.js

目前我的两个型号看起来像这样

module.exports = {
    tableName: 'accounts',
    attributes: {
        id: {
            type: 'integer',
            primaryKey: true,
            autoIncrement: true
        },
        name: {
            type: 'string',
            required: true
        },
        password: {
            type: 'string',
            required: true
        },
        email: {
            type: 'string',
            required: true
        },
        gang_name: {
            type: 'string',
            required: true
        },
        family_id: {
            type: 'string',
            required: true
        },
        world: {
            type: 'string',
            required: true
        },
        messages: {
            collection: 'Messages',
            via: 'for'
        }
    }
}

我的消息模型

module.exports = {
    tableName: 'messages',
    attributes: {
        id: {
            type: 'integer',
            primaryKey: true,
            autoIncrement: true
        },
        title: {
            type: 'string',
            required: true
        },
        text: {
            type: 'string',
            required: true
        },
        for: {
            model: 'Accounts',
            required: true
        },
        by: {
            type: 'integer',
            required: true
        }
    }
};

我想将邮件的for字段与帐户相关联,这样如果'for'字段是= 11加载帐户ID为11 ...目前我正在尝试这种方式

Accounts.find({ id: req.session.accountid }).populate('Messages').exec(function(err, data) {
            console.log(data, err);
        });

但我得到了一个错误

  

尝试填充不存在的属性

1 个答案:

答案 0 :(得分:2)

您必须使用populate方法使用属性名称('messages'),而不是模型名称('Messages')。