This is the second post of my series about learning Ember.js with Ruby on Rails.
Ember App Kit
Ember App Kit (EAK) is a robust starter kit for developing applications in Ember.js. EAK makes it easy to develop, build, test, and deploy applications independent of any back-end build process.
Getting an Ember project started is really easy thanks to EAK, it already puts the basic structure of our apps so we can focus on what we like the most, developing.
But what if I want to use Ruby on Rails and Ember? How can I get all this stuff to play nicely?.
There are three options:
- Keep two separate projects, a Rails app (probably using rails-api) and an EAK app.
- Use the
ember-railswhich basically puts Ember’s source files in your project and compiles your templates.
- Use Ember Appkit Rails :).
Introducing Ember Appkit Rails.
Different to the
ember-rails’s gem, EAKR brings the same level of
importance to your Ember.js files as your Rails files (plus some other
goodies), and this has a huge impact on how we are used to look at Rails apps.
EAKR (Ember Appkit Rails) puts by default all your ember application
app/ and configuration files under
config/, it also
files put in that directory. All this can be configurable and
and could change for 1.0.
You also get some Rails generators and if you pass
--ember, it will create the equivalent files for Ember.
As an example let’s look at the output of
rails g scaffold posts --ember
$rails g scaffold user first_name:string last_name:string --ember invoke active_record create db/migrate/20140131134237_create_users.rb create app/models/user.rb invoke rspec create spec/models/user_spec.rb invoke factory_girl create spec/factories/users.rb create config/serializers/user_serializer.rb invoke ember:resource create app/models/user.es6 create test/models/user_test.es6 create app/routes/users/edit.es6 create app/routes/users/index.es6 create app/routes/users/new.es6 create app/routes/users/show.es6 insert config/router.es6 create app/templates/users/edit.hbs create app/templates/users/index.hbs create app/templates/users/new.hbs create app/templates/users/show.hbs create app/templates/users.hbs create app/templates/users/form.hbs invoke scaffold_controller create app/controllers/api/v1/users_controller.rb invoke rspec
It creates our Ruby on Rails models, controllers, Ember files and test.
Some important things to notice here are
Ember.js files are located under app, e.g.
.es6. It means that they are written using ECMAScript 6 syntax which then is compiled to AMD (Hopefully GitHub will start to highlight this file)
Your controller is namespaced under
api/vX, you can change the version with
config.ember.api_version, also your controller is optimized to be a
test/models/user_test.es6this is actually not part of the official version but might be integrated any time soon (I’m using a development branch), you will also get test for other parts of your Ember app like Routes, Controller, and Integration.
All this is still under heavy development and some things might change (I’ll keep this post updated).
In the next post we will start to work on an application and also get into some of Ember.js concepts as we start to come across them.
Subscribe to the Ember.js with Ruby on Rails list to stay updated.