mockra

Ember Data Creating Records - 27 Oct 2014


Creating records with ember-data can be frustrating your first time around. Without having a decent grasp on the framework, it can be hard to know the server response you need to generate. This can be further escalated if you’re not sure why the response is failing.

The goal of this post is to present a guide to get you started, and hopefully eliminate any unnecessary frustration. The controller action for creating objects should look like:

A few things to notice about this example. When submitting a form, we’re passing the post object to the create action. This lets us easily setup that association when storing this comment record. When saving the record, we’re providing responses for both the success and failure scenarios.

When the comment is saved successfully, we’re sending the user to the comments.show route, and passing the new record as an argument. This will allow us to stick the comment.id in the route path.

More importantly, in the case of a failure scenario, we’re logging the error message to the console. When persisting a record in EmberJS, a failure can be caused by a variety of things. Something as simple as returning an associated model in your server response that hasn’t been defined as an ember model can cause a failure. By logging the reason for the failure, we make it easier to solve any bugs in our code.

The server response for the action would look like:

We’ll also want to return a status code of 201.

##Edit 11/02/2014##

If you’re using async relationships, then you’ll need to update to the latest version of ember-data. You can find details in this issue:

https://github.com/emberjs/data/pull/1535