Sails.js 模特协会

Sails.js model association

目前我的两个模型是这样的

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'
        }
    }
}

还有我的 Messages 模型

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);
        });

但是我收到一个错误

Attempting to populate an attribute that doesnt exist

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