2012-08-08 100 views
0

我是新來RailwayJS(但不是Rails)的,我有一個關於最好的方式,以節省更新我的created_at上創建現場,並updated_at領域的問題。在更新數據庫字段中RailwayJS創建和更新

這是我的模型(DB/schema.js):

var Post = define('Post', function() { 
    property('title', String); 
    property('content', Text); 
    property('desc', String); 
    property('created_at', Date); 
    property('updated_at', Date); 
}); 

所以在我posts_controller.js,我設置create方法之前 「created_at」 字段:

action(function create() { 
    req.body.Post.created_at = new Date; 
    Post.create(req.body.Post, function (err, post) { 
     // Handle error or do stuff 
    }); 
}); 

。 ..和我幾乎在做同樣的update方法:

action(function update() { 
    body.Post.updated_at = new Date; 
    this.post.updateAttributes(body.Post, function (err) { 
     // Handle error or do stuff 
    }.bind(this)); 
}); 

不能(不應該)這是在我的模型中的過濾器之前完成的?如果是這樣,怎麼樣?

回答

3

正如你在最後一條評論中提到的,它可以在鐵路JJ中這樣完成:

before(setDate, {only: ['create', 'update']}); 

action(function update() { 
    console.log(body.Post.updated_at); 

    this.post.updateAttributes(body.Post, function (err) { 
     if (!err) { 
      flash('info', 'Post updated'); 
      redirect(path_to.post(this.post)); 
     } else { 
      flash('error', 'Post can not be updated'); 
      this.title = 'Edit post details'; 
      render('edit'); 
     } 
    }.bind(this)); 
}); 


function setDate(){ 
    body.Post.updated_at = new Date(); 
    next(); 
} 
+0

感謝您的明確示例! – JohnnyCoder 2012-11-11 16:57:19

0

現在,我一直是我已經張貼在我的問題...

但是,如果我想做到這一點的before過濾器會去是這樣的:

before(setDate, {only: ['create', 'update']}); 

... 

function setNewDate() { 
    // Update the request model with the date 
    ... 
    next(); 
}