我是 geddy 的新手,我对如何使用模型事件感到困惑。
我的模型有一个 slug 字段,我想在保存任何记录之前生成 slug(基于他们输入的名称)。
换句话说,我该如何在 geddy 中做到这一点?
轨道模型:
before_save :generateSlug
private:
def generateSlug
self.slug = self.name.parameterize
end
<小时/>
示例模型代码: 模型/page.js
slugify = require('slug');
var Page = function(){
this.defineProperties({
slug: {type: 'string'},
name: {type: 'string', required: true}
});
this.beforeSave = function(){
this.slug = slugify(this.name);
}
}
exports.Page = Page;
当我运行 p = geddy.model.Page.create({name: 'hello world'});
和 p.save(function(e,d){ console. log(d); })
slug 未定义
最佳答案
您可以使用 beforeValidate
生命周期方法来执行此操作。
试试这个:
this.beforeValidate = function () {
this.slug = slugify(this.name);
};
注意:这在 Model@0.3.2
之前不起作用,该版本修复了不一致的生命周期方法的错误。
关于node.js - 如何使用 Geddy 模型事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19555714/