我是geddy的新手,我对如何使用模型事件感到困惑。
我的模型有一个slug字段,我想在保存任何记录之前生成slug(基于他们输入的名称)。
换句话说,我怎么在geddy中这样做?
rails model:
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未定义时
答案 0 :(得分:1)
您可以使用beforeValidate
生命周期方法执行此操作。
试试这个:
this.beforeValidate = function () {
this.slug = slugify(this.name);
};
注意:这在Model@0.3.2
之前不起作用,{{1}}对于不一致的生命周期方法有错误修正。