我正在使用Vapor 2並試圖創建非最終模型來對其進行子類化。可能嗎?我有下面的代碼抽象模型:Vapor 2,Fluent模型子類
class MongoObject: Model, JSONRepresentable {
let storage = Storage()
let creationDate: Date
init() {
creationDate = Date()
}
required init(row: Row) throws {
creationDate = try row.get(KeyPath.creationDate)
}
func makeRow() throws -> Row {
var row = Row()
try row.set(KeyPath.creationDate, creationDate)
return row
}
func makeJSON() throws -> JSON {
var json = JSON()
try json.set(KeyPath.id, id)
try json.set(KeyPath.creationDate, creationDate)
return json
}
}
extension MongoObject: Preparation {
class func prepare(model: Creator) { }
static func prepare(_ database: Database) throws {
try database.create(self) { (builder) in
builder.id()
builder.date(KeyPath.creationDate)
prepare(model: builder)
}
}
static func revert(_ database: Database) throws {
try database.delete(self)
}
}
,但得到的編譯錯誤:
method 'make(for:)' in non-final class 'MongoObject' must return
Self
to conform to protocol 'Parameterizable'