Skip to content
This repository

A data persistence library for Ember.js.

Merge pull request #1755 from alexspeller/fix-rollback-on-invalid-rec…


Fix rollback on invalid record after set
latest commit 75ab804301
Stefan Penner stefanpenner authored
Octocat-spinner-32 bin Cache RubyGems and NPM packages. December 19, 2013
Octocat-spinner-32 docs Merge pull request #1720 from rjackson/add-docs-task January 29, 2014
Octocat-spinner-32 generators Add current revision back to build output. January 29, 2014
Octocat-spinner-32 lib Make Ember::Data::VERSION match Gemspec. November 29, 2013
Octocat-spinner-32 packages Merge pull request #1755 from alexspeller/fix-rollback-on-invalid-rec… April 15, 2014
Octocat-spinner-32 tasks Remove `window` references in favor of `Ember.lookup`. March 11, 2014
Octocat-spinner-32 tests Allow testing against multiple versions of Ember & jQuery. January 29, 2014
Octocat-spinner-32 vendor WIP ES6 lol January 04, 2014
Octocat-spinner-32 .bowerrc Explicitly define a bower install directory March 25, 2014
Octocat-spinner-32 .gitignore Add `bower_components` to .gitignore January 26, 2014
Octocat-spinner-32 .jshintrc Merge branch 'master' of into es6 January 23, 2014
Octocat-spinner-32 .travis.yml Use local versions of grunt and bower for Travis. January 29, 2014
Octocat-spinner-32 Remove duplicate changelog entry. February 22, 2014
Octocat-spinner-32 Update instructions for running tests. January 29, 2014
Octocat-spinner-32 Gruntfile.js Add `grunt docs` task. January 29, 2014
Octocat-spinner-32 LICENSE Update copyright year. January 01, 2014
Octocat-spinner-32 Should install grunt-cli globally. January 26, 2014
Octocat-spinner-32 Update "Underscored Keys, `_id` and `_ids`" section October 09, 2013
Octocat-spinner-32 VERSION actually update version for post-release version bump February 19, 2014
Octocat-spinner-32 bower.json Update ember version to 1.4.0 February 17, 2014
Octocat-spinner-32 ember-data-source.gemspec Add MIT license identification to the Ruby gemspec January 08, 2014
Octocat-spinner-32 package.json lock server while compiling assets February 14, 2014

Ember Data Build Status

Ember Data is a library for loading data from a persistence layer (such as a JSON API), mapping this data to a set of models within your client application, updating those models, then saving the changes back to a persistence layer. It provides many of the facilities you'd find in server-side ORMs like ActiveRecord, but is designed specifically for the unique environment of JavaScript in the browser.

Ember Data provides a central Data Store, which can be configured with a range of provided Adapters, but two core Adapters are provided: the RESTAdapter and FixtureAdapter.

The RESTAdapter is configured for use by default. You can read more about it in the Guides. It provides a fully RESTful mechanism for communicating with your persistence layer, and is the preferred and recommended choice for use with Ember Data.

This is definitely alpha-quality. The basics of RESTAdapter work, but there are for sure edge cases that are not yet handled. Please report any bugs or feature requests, and pull requests are always welcome.

Is It Good?


Is It "Production Ready™"?

No. The API should not be considered stable until 1.0. Breaking changes, and how to update accordingly, are listed in

A guide is provided on the Ember.js site that is accurate as of Ember Data 1.0 beta.

Getting ember-data

The latest passing build from the "master" branch is available on

Similarly the latest passing build from the "beta" branch can be found on

You also have the option to build ember-data.js yourself. Clone the repository, run grunt buildPackages after setup. You'll find ember-data.js in the dist directory.


  • Handle error states
  • Better built-in attributes
  • Editing "forked" records
  • Out-of-the-box support for Rails apps that follow the active_model_serializers gem's conventions.
  • Handle partially-loaded records

How to Run Unit Tests


  1. Install Node.js from or your favorite package manager.

  2. Install grunt and bower. npm install -g grunt-cli bower

  3. Run npm install && bower install inside the project root to install the JS dependencies.

In Your Browser

  1. To start the development server, run grunt dev.

From the CLI

  1. Install phantomjs from

  2. Run grunt test

  3. Run grunt dev to automatically re-run tests when any files are changed.

Something went wrong with that request. Please try again.