2013-10-24 2 views
1

Я новичок в geddy, и я запутался в том, как использовать модельные события.Как использовать события модели Geddy

В моей модели есть поле слизняков, и я хочу сгенерировать пул (основание по имени, которое они ввели), прежде чем сохранять записи.

Другими словами, как это сделать в 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); }) пробкового неопределен

ответ

1

Вы можете использовать beforeValidate метод жизненного цикла для этого.

Попробуйте это:

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

Примечание: Это не работает до [email protected], которая имела исправление в несовместимых методов жизненного цикла.

+0

Спасибо, но я не могу увидеть какой-либо afterCreate в документации и когда я попробовал this.beforeSave мой slug по-прежнему получает undefined вместо строки slug. – ginad

+0

Хм, можете ли вы разместить образец кода, чтобы я мог видеть, что вы делаете? – Ben

+1

Привет, Бен, я только что обновил вопрос, чтобы добавить образец кода. Спасибо – ginad

Смежные вопросы