Aesthetikx / ember_nested_rails

Experiment to get Ember to work with nested resource routes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ember Nested Rails

##Configure Rails to generate ember-esque json

# config/initializers/active_model_serializer.rb
ActiveModel::Serializer.setup do |config|
  config.embed = :ids
  config.embed_in_root = true
end

# app/serializers/post_serializer.rb
class PostSerializer < ActiveModel::Serializer
  attributes :id, :title, :body
  has_many :comments
end

# app/serializers/comment_serializer.rb
class CommentSerializer < ActiveModel::Serializer
  attributes :id, :body
end

##Configure Ember to use nested routes

// frontend/app/adapters/post.js
import DS from "ember-data";
import UrlTemplates from "ember-data-url-templates";

export default DS.ActiveModelAdapter.extend(UrlTemplates, {
  urlTemplate: '{+host}/api/posts/{/id}',
});

// frontend/app/adapters/comment.js
import DS from "ember-data";
import UrlTemplates from "ember-data-url-templates";

export default DS.ActiveModelAdapter.extend(UrlTemplates, {
  urlTemplate: '{+host}/api/posts/{postId}/comments{/id}',

  urlSegments: {
    postId(type, id, snapshot, query) {
      return snapshot.belongsTo('post', { id: true });
    },
  }
});

About

Experiment to get Ember to work with nested resource routes


Languages

Language:Ruby 61.4%Language:HTML 19.5%Language:JavaScript 16.8%Language:Handlebars 2.3%