1

我是 geddy 的新手,我对如何使用模型事件感到困惑。

我的模型有一个 slug 字段,我想在保存任何记录之前生成 slug(基于他们输入的名称)。

换句话说,我如何在 geddy 中做到这一点?

导轨型号:

before_save :generateSlug
private:
 def generateSlug
   self.slug = self.name.parameterize
 end

示例模型代码:model/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'});slugp.save(function(e,d){ console.log(d); })未定义

4

1 回答 1

1

您可以使用beforeValidate生命周期方法来执行此操作。

试试这个:

this.beforeValidate = function () {
  this.slug = slugify(this.name);
};

注意:这在 之前不起作用Model@0.3.2,它对不一致的生命周期方法进行了错误修复。

于 2013-10-24T05:19:01.693 回答