I'm new to RailwayJS (but not Rails) and I had a question about the best way to save my created_at
field on Create, and updated_at
field on Update.
This is my model (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);
});
So in my posts_controller.js
, I'm setting the "created_at" field before the create
method:
action(function create() {
req.body.Post.created_at = new Date;
Post.create(req.body.Post, function (err, post) {
// Handle error or do stuff
});
});
...and I'm pretty much doing the same for the update
method:
action(function update() {
body.Post.updated_at = new Date;
this.post.updateAttributes(body.Post, function (err) {
// Handle error or do stuff
}.bind(this));
});
Couldn't (shouldn't) this be done in a before filter in my model? If so, how?
As you have mentioned in the last comment it can be done in railwayJS like this:
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();
}