1

私は geddy を初めて使用し、モデル イベントの使用方法について混乱しています。

私のモデルには slug フィールドがあり、レコードを保存する前に (入力した名前に基づいて) slug を生成したいと考えています。

言い換えれば、ゲディでこれを行うにはどうすればよいですか?

レールモデル:

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'});してp.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 に答える