水线ORM中的继承



Waterline ORM支持继承吗?比如说,我有一个模型叫BusinessDocument,我想创建一个新模型叫SalesOrder,它扩展了BusinessDocument。因此,SalesOrder最终应该具有BusinessDocument的所有属性加上一些新属性。Waterline支持这一点吗?

看起来Waterline不支持开箱即用。参见GitHub问题。

上面问题中的一个评论还链接到YouTube上的一个sailscast视频(在这里)。简而言之,视频介绍了如何使用lodash将子模型与基本模型合并,如下所示:

baseModel.js

module.exports = {
  attributes : {
    name : 'STRING',
    age  : 'INTEGER'
  },
  foo : function () {}
}

childModel.js

var baseModel = require('/path/to/baseModel')
  , _ = require('lodash')
module.exports = _.merge(baseModel, {
  attributes : {
    birthDate : 'DATE',
    ...
  }
})

最新更新